无法解析由 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 模块的主要内容,如果未能解决你的问题,请参考以下文章