uni-app sourcemap url 路径生成异常

cpjpxq1n  于 4个月前  发布在  uni-app
关注(0)|答案(3)|浏览(68)

问题描述
sourcemapurl 生成的路径不对
应该是

//# sourceMappingURL=../../.sourcemap/mp-weixin/common/main.js.map

而不是

//# sourceMappingURL=../.sourcemap/mp-weixin/common/main.js.map

复现步骤
[复现问题的步骤]

vue create -p dcloudio/uni-preset-vue my-project  // 正式版vuecli 创建项目即可复现

[或者可以直接贴源代码]

预期结果

实际结果

系统信息:

  • 发行平台: 微信小程序
  • 操作系统 [如 iOS 12.1.2、Android 7.0]
  • HBuilderX版本 [如使用HBuilderX,则需提供 HBuilderX 版本号]
  • uni-app版本 [如使用Vue-cli创建/运行项目,则提供 npm run info 的运行结果]
  • 设备信息 [如 iPhone8 Plus]
uni-app v3.6.18
uni-app cli v2.0.2-3061820230117002

Environment Info:

  System:
    OS: macOS 12.3.1
    CPU: (8) x64 Apple M1
  Binaries:
    Node: 14.20.0 - ~/.nvm/versions/node/v14.20.0/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v14.20.0/bin/yarn
    npm: 6.14.17 - ~/.nvm/versions/node/v14.20.0/bin/npm
  Browsers:
    Chrome: 109.0.5414.119
    Firefox: Not Found
    Safari: 15.4
  npmPackages:
    @dcloudio/types: ^3.0.4 => 3.2.11 
    @dcloudio/uni-app: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-app-plus: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-app-plus-nvue:  0.0.1 
    @dcloudio/uni-app-plus-nvue-v8:  0.0.1 
    @dcloudio/uni-automator: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-cli-i18n: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-cli-shared: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-h5: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-helper-json: * => 1.0.13 
    @dcloudio/uni-i18n: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-migration: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-360: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-alipay: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-baidu: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-jd: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-kuaishou: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-lark: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-qq: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-toutiao: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-vue: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-weixin: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-mp-xhs: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-quickapp-native: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-quickapp-webview: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-stacktracey: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-stat: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-template-compiler: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/uni-ui: ^1.4.26 => 1.4.26 
    @dcloudio/vue-cli-plugin-hbuilderx: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/vue-cli-plugin-uni: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/vue-cli-plugin-uni-optimize: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/webpack-uni-mp-loader: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @dcloudio/webpack-uni-nvue-loader:  0.0.1 
    @dcloudio/webpack-uni-pages-loader: ^2.0.2-3061820230117002 => 2.0.2-3061820230117002 
    @hap-toolkit/dsl-vue:  0.6.13 
    @vue/babel-helper-vue-jsx-merge-props:  1.4.0 
    @vue/babel-helper-vue-transform-on:  1.0.2 
    @vue/babel-plugin-jsx:  1.1.1 
    @vue/babel-plugin-transform-vue-jsx:  1.4.0 
    @vue/babel-preset-app:  5.0.8 
    @vue/babel-preset-jsx:  1.4.0 
    @vue/babel-sugar-composition-api-inject-h:  1.4.0 
    @vue/babel-sugar-composition-api-render-instance:  1.4.0 
    @vue/babel-sugar-functional-vue:  1.4.0 
    @vue/babel-sugar-inject-h:  1.4.0 
    @vue/babel-sugar-v-model:  1.4.0 
    @vue/babel-sugar-v-on:  1.4.0 
    @vue/cli-overlay:  5.0.8 
    @vue/cli-plugin-babel: ~5.0.0 => 5.0.8 
    @vue/cli-plugin-router:  5.0.8 
    @vue/cli-plugin-vuex:  5.0.8 
    @vue/cli-service: ~5.0.0 => 5.0.8 
    @vue/cli-shared-utils:  5.0.8 
    @vue/component-compiler-utils:  3.3.0 (3.3.0)
    @vue/composition-api:  1.7.0 
    @vue/devtools-api:  6.0.0-beta.15 
    @vue/shared: ^3.0.0 => 3.2.47 
    @vue/web-component-wrapper:  1.3.0 
    mpvue-page-factory:  1.0.1 
    mpvue-template-compiler:  1.0.13 
    uni-h5-vue:  2.6.10 
    uni-mp-vue:  2.6.10 
    vue: >= 2.6.14 < 2.7 => 2.6.14 
    vue-hot-reload-api:  2.3.4 
    vue-loader:  17.0.1 (15.10.1, 15.10.1, 17.0.1)
    vue-router:  3.0.1 
    vue-style-loader:  4.1.3 (4.1.3)
    vue-template-compiler: >= 2.6.14 < 2.7 => 2.6.14 (2.7.14, 2.6.14)
    vue-template-es2015-compiler:  1.9.1 
    vue3:  1.0.0 
    vuex: ^3.2.0 => 3.6.2 (3.6.2)
  npmGlobalPackages:
    @vue/cli: Not Found

补充信息
应该是webpack5 不太一样

if (filename) {
      options.append = "\n//# sourceMappingURL=../[url]" //  it work!
      options.filename = '../.sourcemap/' + process.env.UNI_PLATFORM + '/[file].map'
    }
ggazkfy8

ggazkfy81#

额...没有进展吗,还是只有我有这个问题😂

zi8p0yeb

zi8p0yeb2#

求解决,我也是这个问题

irtuqstp

irtuqstp3#

写个webpack插件替换source map路径

const webpack = require('webpack')
class ReplaceSourceMappingURL {
  apply(compiler) {
    const regexp = /\/\/\# sourceMappingURL=(.*).js.map/;
    const replaceStr = '//# sourceMappingURL=../$1.js.map';
    compiler.hooks.thisCompilation.tap('ReplaceSourceMappingURL', (compilation) => {
      compilation.hooks.processAssets.tap(
        {
          name: 'ReplaceSourceMappingURL',
          stage: webpack.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE // see below for more stages
        },
        (assets) => {
          for (const filename in assets) {
            if (filename.endsWith('.js')) {
              const source = assets[filename].source().replace(regexp, replaceStr);
              assets[filename] = new webpack.sources.RawSource(source);
            }
          }
        }
      );
    });
  }
}

module.exports = {
  configureWebpack: {
    plugins: [new ReplaceSourceMappingURL()]
  }
};

相关问题