想象两个项目(例如 my-app 和 my-ui)使用 webpack 别名将“组件”解析为“./src/components”。我使用 Lerna 在本地“链接”这个项目并简化开发,my-ui 是 my-app 的依赖项(设置在它的 package.json 中)并像这样导入:
我的应用
/src/main.js :
import UI from 'my-ui';
我的用户界面
/src/main.js
import Button from 'components/button';
export default Button;
/src/components/button/main.js
export default class Button...
当 MyApp 启动时,MyUI 尝试解析“ MyApp/src/components/ ”中的 Button,而不是“ MyApp/node_modules/my-ui/src/components ”或“ MyApp/node_modules/my-ui/lib/app.js ”。我不知道如何解决这个问题!
我的 Webpack 配置中的解析部分:
resolve: {
mainFiles: ['index', 'main'],
extensions: ['.js', '.jsx'],
alias: {
lib: helpers.getPath('src/lib/'),
components: helpers.getPath('src/components/'),
},
modules: [
helpers.getPath('src'),
helpers.getPath('node_modules'),
],
},
getPath 方法在哪里:
const path = require('path');
const projectPath = path.resolve(__dirname, '..');
const getPath = path.join.bind(path, projectPath);