我在同一个目录下有两个模块,都是由lernajs管理的。其中一个是其他模块包含的库。它们都是在webpack库创作之后由webpack打包的。但是,当我在app目录中启动webpack时,这个过程包括了app中所有的library/node_modules依赖项,例如vue.js。在library中,vue是“devDependency”,而在app中是“dependencies”。这意味着navigator中有两个Vue上下文。有人知道为什么吗?谢谢.
r8uurelv1#
您需要添加一个别名:
module.exports = { ... .... }, resolve: { modules: ["node_modules", alias: { 'vue$': 'vue/dist/vue', 'jquery': 'jquery/dist/jquery.min.js' } }, ...
字符串
pxy2qtax2#
感谢@evocateur“Node在需要时解析符号链接,这意味着单例库(如React和Vue)将中断。您需要添加resolve.alias webpack配置,以便它始终选择“根”node_modules包。”在resolve.alias中放入webpack以下内容可以很好地工作:vue: path.resolve(__dirname, './node_modules/vue/')个
resolve.alias
node_modules
vue: path.resolve(__dirname, './node_modules/vue/')
xxe27gdn3#
确保库和应用的webpack配置都设置正确。请特别注意库的webpack配置中的外部配置。此配置允许您指定不应与库捆绑的依赖项。外部化依赖项:在库的webpack配置中,将Vue.js标记为外部依赖项。这意味着当库捆绑时,它不会包含Vue.js,并且它将期望应用提供它。
// In your library's webpack.config.js module.exports = { // ... externals: { vue: 'Vue', // Assuming Vue is available as a global variable }, };
3条答案
按热度按时间r8uurelv1#
您需要添加一个别名:
字符串
pxy2qtax2#
感谢@evocateur
“Node在需要时解析符号链接,这意味着单例库(如React和Vue)将中断。您需要添加
resolve.alias
webpack配置,以便它始终选择“根”node_modules
包。”在resolve.alias中放入webpack以下内容可以很好地工作:
vue: path.resolve(__dirname, './node_modules/vue/')
个xxe27gdn3#
确保库和应用的webpack配置都设置正确。请特别注意库的webpack配置中的外部配置。此配置允许您指定不应与库捆绑的依赖项。外部化依赖项:
在库的webpack配置中,将Vue.js标记为外部依赖项。这意味着当库捆绑时,它不会包含Vue.js,并且它将期望应用提供它。
字符串