Fli*_*ion 3 npm node-modules npm-link
模块A的package.json将模块B列为依赖项
"dependencies": {
"@mynamespace/module-b": "^0.0.1",
Run Code Online (Sandbox Code Playgroud)
模块B是本地模块,已成功从模块A与链接npm link。编译/运行一切顺利。
但是,当我尝试在模块A中安装任何新模块npm install something或只是运行时,npm install或者npm uninstall something总是从npm收到错误消息,即找不到本地模块(npm链接)。
C:\web\module-b>npm install
npm ERR! code E404
npm ERR! 404 Not Found: @mynamespace/module-b@^0.0.1
Run Code Online (Sandbox Code Playgroud)
我按照这里的建议检查了两个模块中的main属性package.json。有几个类似的问题,但似乎没有一个完全是这个问题或给出了可行的解决方案。
现在,我手动从package.json中删除所有提及的链接模块,然后运行npm命令,然后将它们添加回package.json中。
我正在使用npm 6.1.0
编辑:嗯,这可能很关键吗?@ mynamespace / module-b在NPM注册表中尚不存在,仅在本地
小智 6
现在,我手动从package.json中删除所有提及的链接模块,然后运行npm命令,然后将它们添加回package.json中。
不幸的是,这是唯一可行的方法。npm install如果您仅指定版本(即 "@mynamespace/module-b": "^0.0.1",或"*"),它将始终搜索npm注册表,因此运行npm install将使用npm注册表中的内容覆盖node_modules项目中的内容(在这种情况下,则抛出404)。
假设你已经读过该文章,也没有办法使用npm link方法,而且还能运行npm install。为此,您必须在主项目的目录中显式地写入本地程序包的路径package.json(然后在发布程序包时将其改回)。
“依赖关系”:{
“ @ mynamespace / module-b”:“文件:../../ module-b”,
},
我希望这有帮助。
小智 6
如果您将“安装”脚本添加到 package.json,Npm 可以自动执行此操作,该脚本在 npm install 之后立即运行。
"scripts": {
"install": "npm link <your package>"
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2253 次 |
| 最近记录: |