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

fix(mini-runner): 修复 webpack resolve.modules 设置绝对路径导致的不同版本依赖包「优先级」加载错误 #5858

Merged
merged 1 commit into from
Apr 1, 2020

Conversation

wuchangming
Copy link
Contributor

@wuchangming wuchangming commented Mar 31, 2020

这个 PR 做了什么? (简要描述所做更改)

修复 webpack resolve.modules 设置绝对路径导致的依赖包的加载使用了错误的优先级,当node_modules 里存在多个同名不同版本号的依赖时,可能会加载到错的。类似webpack中的这个issues

当 node_modules 存在多个依赖时,下面的配置会导致总是先加载这个path.join(appPath, 'node_modules'), 路径下的。

如下的包目录结构,这个配置会导致 a-package@1.0.0 依赖到错误的 x-dependency@1.0.0 ❌而不是正确的 x-dependency@2.0.0✅

a-package@1.0.0
├─ x-dependency@2.0.0
│ 
x-dependency@1.0.0
modules: [
         path.join(appPath, 'node_modules'),
        'node_modules'
]

修复方式:

我试了下调整下顺序就好了, 优先使用 'node_modules'

modules: [
         'node_modules', // 优先
         path.join(appPath, 'node_modules')       
]

这个 PR 是什么类型? (至少选择一个)

  • 错误修复(Bugfix) issue id #
  • 新功能(Feature)
  • 代码重构(Refactor)
  • TypeScript 类型定义修改(Typings)
  • 文档修改(Docs)
  • 代码风格更新(Code style update)
  • 其他,请描述(Other, please describe):

这个 PR 满足以下需求:

  • 提交到 master 分支
  • Commit 信息遵循 Angular Style Commit Message Conventions
  • 所有测试用例已经通过
  • 代码遵循相关包中的 .eslintrc, .tslintrc, .stylelintrc 所规定的规范
  • 在本地测试可用,不会影响到其它功能

这个 PR 涉及以下平台:

  • 微信小程序
  • 支付宝小程序
  • 百度小程序
  • 头条小程序
  • QQ 轻应用
  • 快应用平台(QuickApp)
  • Web 平台(H5)
  • 移动端(React-Native)

其它需要 Reviewer 或社区知晓的内容:

@wuchangming
Copy link
Contributor Author

没用 2.x 但应该也存在一样的问题
https://github.com/NervJS/taro/blob/2.x/packages/taro-mini-runner/src/webpack/base.conf.ts

@wuchangming wuchangming changed the title fix(mini-runner): 修复 webpack resolve.modules 设置绝对路径导致的依赖引用错误 fix(mini-runner): 修复 webpack resolve.modules 设置绝对路径导致的不同版本依赖包「优先级」加载错误 Apr 1, 2020
@luckyadam luckyadam merged commit e861756 into NervJS:next Apr 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants