无法解析由 npm pack 制作的本地 npm 模块

Posted

技术标签:

【中文标题】无法解析由 npm pack 制作的本地 npm 模块【英文标题】:Can't resolve a local npm module made by npm pack 【发布时间】:2019-09-23 15:25:26 【问题描述】:

我使用npm pack创建了一个本地模块,它创建了一个包:“org-header-0.0.3.tgz”

在一个 React 项目中,我将org-header 添加到它的package.json

"dependencies": 
  "org-header": "file:[path-to-org-header]/org-header-0.0.3.tgz",
 ...

它安装得很好。但是,当我尝试使用它时:

import Header from 'org-header';

...

但是当我做npm run start:

Failed to compile.

./src/components/Layout.js
Module not found: Can't resolve 'org-header' in '/Users/imyjimmy/***/src/components'

可能是因为:

    我没有正确构建 org-header 项目 Webpack 做了一些奇怪的事情 两者都有?

【问题讨论】:

【参考方案1】:

前几天我也遇到了同样的问题。如果有帮助,请在此处发布我的解决方案。

所以我正在通过

在我的主项目(项目 A)中测试本地依赖项(项目 B)更新
    npm pack --> 生成tgz 文件 如上述问题所示,参考项目 A 的 package.json 中的 tgz 文件 在项目A中运行npm install解压包——安装正常 npm develop 时遇到以下错误
Generating development javascript bundle failed
Can't resolve 'project B' in '/Users/xxx@xxx.com/projectA/src/pages'

此错误表明包 Project A 不存在。 这很奇怪,因为当我运行npm list project B 时,我实际上得到了它存在的确认。

解决方案是再次显式安装项目 B,例如npm install project B,而不是在步骤 3 中更改 package.json 后运行 npm install

我不知道是不是 webpack 被 2 个包弄糊涂了,但解决方案解决了我的问题。

【讨论】:

以上是关于无法解析由 npm pack 制作的本地 npm 模块的主要内容,如果未能解决你的问题,请参考以下文章

Npm pack 包含本地模块

React Native:npm链接本地依赖,无法解析模块

如何使用 npm pack 打包最新的更改?

CSS 更新后 NPM 模块无法导入

pack 方便的npm 构建工具

比较 npm pack tarball 和 NPM 上的内容