首页 > 解决方案 > 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 或下划线的任何错误消息,因为它们是在barpackage.json 中声明的。这让我觉得也许 webpack 在构建时无法找到utf8位于node_modules/foo/node_modules/utf8.

我能想象解决这个问题的唯一方法是foo手动安装 's 依赖项,bar但这没有意义,我不能指望任何人使用我创建的库来手动安装它所依赖的所有模块。或者有没有办法在模块中声明要求 npm 在运行时安装在foo' s目录中?(无需手动决定使用传统捆绑,如 luchaos answer here中所述)。package.jsonbarnode_modulesnpm install --save ../foo

标签: node.jsionic-frameworkwebpack

解决方案


推荐阅读