浏览代码

chore: add sourcemap

DaiQiangReal 1 年之前
父节点
当前提交
340afa88bc
共有 1 个文件被更改,包括 21 次插入1 次删除
  1. 21 1
      gatsby-node.js

+ 21 - 1
gatsby-node.js

@@ -375,8 +375,9 @@ exports.onPostBuild = async () => {
 
 
     (()=>{
     (()=>{
         const jsFiles = glob.sync(`${publicPath}/*.js`);
         const jsFiles = glob.sync(`${publicPath}/*.js`);
-
+        const mapFiles = glob.sync(`${publicPath}/*.map`);
         const replaceNames = {};
         const replaceNames = {};
+
         for (let file of jsFiles) {
         for (let file of jsFiles) {
             const filename = path.basename(file);
             const filename = path.basename(file);
             const fileNameWithoutExt = filename.split('.')[0];
             const fileNameWithoutExt = filename.split('.')[0];
@@ -392,6 +393,25 @@ exports.onPostBuild = async () => {
                 fs.renameSync(file, path.join(path.dirname(file), finalFileName));
                 fs.renameSync(file, path.join(path.dirname(file), finalFileName));
             }
             }
         }
         }
+
+        for (let file of mapFiles) {
+            const filename = path.basename(file);
+            const fileNameWithoutExt = filename.split('.')[0];
+            const originHash = fileNameWithoutExt.split('-').at(-1);
+
+            if (originHash && originHash!==fileNameWithoutExt) {
+                let fileNameWithoutExtWithHash = fileNameWithoutExt.replace(originHash, `${originHash}${numHash}`);
+                replaceNames[originHash] = `${originHash}${numHash}`;
+                fs.renameSync(file, path.join(path.dirname(file), `${fileNameWithoutExtWithHash}.js.map`));
+            } else {
+                let finalFileName = `${fileNameWithoutExt}${numHash}.js.map`;
+                replaceNames[filename] = finalFileName;
+                fs.renameSync(file, path.join(path.dirname(file), finalFileName));
+            }
+        }
+
+
+
         const allFiles = glob.sync(`${publicPath}/**/*.{js,html,json}`);
         const allFiles = glob.sync(`${publicPath}/**/*.{js,html,json}`);
         for (let file of allFiles) {
         for (let file of allFiles) {
             const stats = fs.statSync(file);
             const stats = fs.statSync(file);