瀏覽代碼

imagemagick windows打包

Michael Wang 3 年之前
父節點
當前提交
3c54c3c1ae
共有 9 個文件被更改,包括 31 次插入18 次删除
  1. 4 1
      .gitignore
  2. 1 1
      package.json
  3. 2 1
      src/features/Image/Image.vue
  4. 3 3
      src/features/Login/Login.vue
  5. 6 6
      src/lib/config.ts
  6. 8 3
      src/lib/watermark.ts
  7. 5 1
      src/store.ts
  8. 1 1
      src/types/index.ts
  9. 1 1
      vue.config.js

+ 4 - 1
.gitignore

@@ -30,4 +30,7 @@ pnpm-debug.log*
 #Electron-builder output
 /dist_electron
 
-oldSrc
+oldSrc
+
+*202012*
+imagemagick

+ 1 - 1
package.json

@@ -7,7 +7,7 @@
     "serve": "vue-cli-service serve",
     "build": "vue-cli-service build",
     "lint": "vue-cli-service lint",
-    "electron:build:win": "vue-cli-service electron:build --win --x64 --ia32",
+    "electron:build:win": "vue-cli-service electron:build --win --ia32",
     "electron:build": "vue-cli-service electron:build",
     "electron:serve": "vue-cli-service electron:serve",
     "postinstall": "electron-builder install-app-deps",

+ 2 - 1
src/features/Image/Image.vue

@@ -180,7 +180,8 @@ let ruleExample = computed(() => {
   return "";
 });
 
-const chooseDirectory = () => {
+const chooseDirectory = (e: MouseEvent) => {
+  e.preventDefault();
   window.electron.dialog
     .showOpenDialog({
       title: "请选择保存目录",

+ 3 - 3
src/features/Login/Login.vue

@@ -57,9 +57,9 @@ let password = ref("");
 // onMounted(() => {
 //   window.localStorage.clear();
 // });
-server.value = "http://192.168.10.224:80";
-loginName.value = "admin-test";
-password.value = "123456";
+// server.value = "http://192.168.10.224:80";
+// loginName.value = "admin-test";
+// password.value = "123456";
 
 const loginAction = () => {
   Object.assign(store.env, {

+ 6 - 6
src/lib/config.ts

@@ -5,12 +5,12 @@ import moment from "moment";
 
 let configJson;
 // if (process.env.IS_ELECTRON) {
-//   const dirName = process.env.PORTABLE_EXECUTABLE_DIR;
-
-//   configJson = readFileSync(path.join(dirName || "", "config.json"));
-// } else {
-configJson = readFileSync(path.join(__dirname, "../config.json"));
-// }
+const dirName = process.env.PORTABLE_EXECUTABLE_DIR;
+if (dirName) {
+  configJson = readFileSync(path.join(dirName || "", "config.json"));
+} else {
+  configJson = readFileSync(path.join(__dirname, "../config.json"));
+}
 
 const store = JSON.parse(configJson.toString());
 

+ 8 - 3
src/lib/watermark.ts

@@ -29,12 +29,17 @@ export async function addWatermark(
   y = imageHeight * y;
   if (!gm) {
     gm =
-      store.config.imagemagick != undefined
+      store.config.imagemagickDev != undefined
         ? require("gm").subClass({
             imageMagick: true,
-            appPath: store.config.imagemagick,
+            appPath: store.config.imagemagickDev,
           })
-        : require("gm");
+        : require("gm").subClass({
+            imageMagick: true,
+            appPath: path.join(__dirname, "../../imagemagick/"), // windows打包进程序了
+          });
+    // console.log(path.join(__dirname, "../../imagemagick/"));
+    // console.log(path.join(__dirname, store.config.imagemagickDev));
   }
   if (fs.existsSync(file) && store.pageInputs["/image-download"].append) {
     console.log(file + " already exists");

+ 5 - 1
src/store.ts

@@ -16,7 +16,11 @@ const _store = {
 } as Store;
 
 // for dev
-Object.assign(_store, JSON.parse(window.localStorage.getItem("store") || "{}"));
+Object.assign(
+  _store,
+  JSON.parse(window.localStorage.getItem("store") || "{}"),
+  { config: JSON.parse(JSON.stringify(window.electron.config)) || {} } // use 最新的config
+);
 
 const handler = function () {
   return {

+ 1 - 1
src/types/index.ts

@@ -27,7 +27,7 @@ export interface Store {
     logger: Logger;
     openDevTools: boolean;
     servers: Server[];
-    imagemagick?: string;
+    imagemagickDev?: string;
   };
 
   pageInputs: {

+ 1 - 1
vue.config.js

@@ -22,7 +22,7 @@ module.exports = {
       preload: "src/preload.ts",
       externals: [],
       builderOptions: {
-        // extraFiles: ["extra/**", "preload.js"],
+        extraFiles: ["font/**", "imagemagick/**"],
         win: {
           target: "portable",
           signAndEditExecutable: false,