瀏覽代碼

确保线上构建不泄露sourcemap文件

Michael Wang 6 年之前
父節點
當前提交
e3f99de669
共有 2 個文件被更改,包括 26 次插入0 次删除
  1. 1 0
      package.json
  2. 25 0
      postbuild.js

+ 1 - 0
package.json

@@ -11,6 +11,7 @@
     "build:staging": "NODE_ENV=production vue-cli-service build --mode staging",
     "prebuild:prod": "node prebuild",
     "build:prod": "vue-cli-service build",
+    "postbuild:prod": "node postbuild",
     "test:unit": "vue-cli-service test:unit"
   },
   "eslintIgnore": [

+ 25 - 0
postbuild.js

@@ -0,0 +1,25 @@
+console.log("> postbuild");
+console.log("> postbuild 将sourcemap文件改名,防止源码泄露");
+
+const revision = require("child_process")
+  .execSync("git rev-parse HEAD")
+  .toString()
+  .trim()
+  .slice(10, 17);
+const fs = require("fs");
+const DIR = "./dist/js/";
+const sourcemaps = fs
+  .readdirSync(DIR)
+  .filter(v => v.endsWith(".map"))
+  .map(v => DIR + v);
+for (const s of sourcemaps) {
+  fs.renameSync(s, s.replace(".js.map", "-" + revision + ".js.map"));
+  console.log(
+    "  rename ",
+    s,
+    " => ",
+    s.replace(".js.map", "-" + revision + ".js.map")
+  );
+}
+
+console.log();