node.js - webpack 构建中缺少子模块的依赖项
问题描述
这可能是一个愚蠢的问题,但不知何故我无法找到解决方案。
我创建了一个 nodejs 库,其中包含我在许多项目中使用的实用程序,假设它被称为foo
. 该库使用在其 package.json 中声明的模块,如下所示:
"dependencies": {
"jquery": "^3.2.1",
"moment": "^2.18.1",
"underscore": "^1.8.3",
"utf8": "^2.1.2"
},
然后我有一个 ionic3 应用程序(假设它被称为bar
),我想在其中使用这个库,所以在bar
'spackage.json
中,我声明:"foo": "../foo",
问题是,当我尝试在浏览器中打开我的应用程序时,我收到以下消息:
Error: Cannot find module "utf8" someScriptLocatedInFoo.js:1:26
webpackMissingModule someScriptLocatedInFoo.js:1
1259 someScriptLocatedInFoo.js:1
Bootstrap11Webpack
我没有收到 jquery、moment 或下划线的任何错误消息,因为它们是在bar
package.json 中声明的。这让我觉得也许 webpack 在构建时无法找到utf8
位于node_modules/foo/node_modules/utf8
.
我能想象解决这个问题的唯一方法是foo
手动安装 's 依赖项,bar
但这没有意义,我不能指望任何人使用我创建的库来手动安装它所依赖的所有模块。或者有没有办法在模块中声明要求 npm 在运行时安装在foo
' s目录中?(无需手动决定使用传统捆绑,如 luchaos answer here中所述)。package.json
bar
node_modules
npm install --save ../foo
解决方案
推荐阅读
- linux - 如何查找和连接具有不同字符但其根在文本文件中列出的文件?
- python - nltk:如何搜索一些单词之间的联系?
- android - Android facebook登录不会进入下一个活动
- c# - Bot Framework v4.2 - 从 OnTurnError 异常中顺利恢复
- python - 回调分配 GPU 内存
- html - 保持 CSS 网格中列之间的比例。如何计算网格列?
- oracle-apex - 使用动态动作来隐藏/显示基于具有可变条件的另一个 LOV 的 LOV
- c# - 如何使用c#从xml中删除元素id
- sql - 如何在 SQL 中为时间序列创建移动窗口计算?(不是平均值)
- python - 无法根据熊猫数据框中的条件为值添加前缀