抱歉标题不好(真的不知道我可以给这个问题提供什么其他标题)。
长话短说,作为第一次反应组件库开发人员。我正在使用webpack 4将我的幻想反应组件库转换为模块。
一切都很顺利,直到我开始使用npm-link来加快我的本地开发速度。
所以主要问题是虽然我已经指定如下
//webpack.fancy-react-component-lib.config.js
...
externals: {
react: {
root: 'React',
commonjs2: 'react',
commonjs: 'react',
amd: 'react',
umd: 'react',
},
'react-dom': {
root: 'ReactDOM',
commonjs2: 'react-dom',
commonjs: 'react-dom',
amd: 'react-dom',
umd: 'react-dom',
},
}
...
//package.json
...
"dependencies": {},
"devDependencies": {
...
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-redux": "^7.0.3",
"react-router-dom": "^5.0.0",
...
},
"peerDependencies": {
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-redux": "^7.0.3",
"react-router-dom": "^5.0.0"
}
...
所以如果我通过 git 语法导入了模块
"fancy-react-component-lib" :"git+ssh://git@bitbucket.org/fancy-react-component-lib.git#test1.0.11"
一切正常,最终捆绑的 js 中只有一个react副本。
但是如果我用 npm-link 绑定到项目文件夹,react 的第二个副本会添加最终绑定的 js。
谁能告诉我为什么?
谢谢