Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sourcemap url 路径生成异常 #4128

Open
bigbossx opened this issue Feb 4, 2023 · 3 comments
Open

sourcemap url 路径生成异常 #4128

bigbossx opened this issue Feb 4, 2023 · 3 comments
Assignees
Labels
mp-weixin 微信小程序 vue2 提供了复现方案 提供了复现方案 reproduce

Comments

@bigbossx
Copy link

bigbossx commented Feb 4, 2023

问题描述
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 创建项目即可复现

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

预期结果
image

实际结果
image

系统信息:

  • 发行平台: 微信小程序
  • 操作系统 [如 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'
    }
@bigbossx
Copy link
Author

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

@borderGong
Copy link

求解决,我也是这个问题

@Otto-J Otto-J self-assigned this Jan 12, 2024
@Otto-J Otto-J added mp-weixin 微信小程序 vue2 提供了复现方案 提供了复现方案 reproduce labels Jan 12, 2024
@zhandeze
Copy link

zhandeze commented Apr 5, 2024

写个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()]
  }
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mp-weixin 微信小程序 vue2 提供了复现方案 提供了复现方案 reproduce
Projects
None yet
Development

No branches or pull requests

4 participants