npm install after npm link-ing local module causes error: Not found
npm install after npm link-ing local module causes error: Not found
模块 A 的 package.json 将模块 B 列为依赖项
"dependencies": {
"@mynamespace/module-b": "^0.0.1",
模块 B 是本地模块,使用 npm link
从模块 A 成功 linked。编译/运行宁事情一切顺利。
然而,当我尝试使用 npm install something
或 运行 npm install
或 npm uninstall something
在模块 A 中安装任何新模块时,我总是从 npm 得到错误找不到本地模块(npm link-ed)。
C:\web\module-b>npm install
npm ERR! code E404
npm ERR! 404 Not Found: @mynamespace/module-b@^0.0.1
我按照建议 here 检查了两个模块中 package.json
中的 main
属性。有几个类似的问题,但 none 似乎正是这个问题或给出了有效的解决方案。
现在我正在从 package.json 中手动删除所有提及的 linked 模块,然后我 运行 npm 命令,然后将它们添加回 package.json
我正在使用 npm 6.1.0
编辑:啊,这可能很重要? @mynamespace/module-b 在 NPM 注册表中尚不存在,仅存在于本地
Right now I'm manually removing all mentions of linked modules from package.json, then I run npm commands, and than I add them back to package.json
不幸的是,这是唯一可行的方法。如果你只指定一个版本(i.e "@mynamespace/module-b": "^0.0.1",
或 "*"
),npm install
将始终搜索 npm 注册表,所以 运行ning npm install
将用它在 npm 注册表中找到的内容覆盖项目 node_modules
中的内容(或在这种情况下抛出 404)。
假设您已经阅读了 this 文章,没有办法使用 npm link
方法以及 运行 npm install
。为此,您必须在主项目的 package.json
中显式写入本地包的路径(然后在您发布包后将其改回)。
"dependencies": {
"@mynamespace/module-b": "file:../../module-b",
},
希望对您有所帮助。
如果您将 "install" 脚本添加到 package.json,Npm 可以自动执行此操作,该脚本会在 npm 安装后立即运行。
"scripts": {
"install": "npm link <your package>"
},
OP在这里。我最近 switched to yarn, which is very compatible with npm. Yarn has a thing called workspaces 更好地处理了整个链接问题。自从切换后就没有出现过上述问题。
删除 package-lock.json
然后 运行 npm link <package_name><local_package_path>
修复了错误。
package.json 将模块 B 列为依赖项
"dependencies": {
"@mynamespace/module-b": "^0.0.1",
模块 B 是本地模块,使用 npm link
从模块 A 成功 linked。编译/运行宁事情一切顺利。
然而,当我尝试使用 npm install something
或 运行 npm install
或 npm uninstall something
在模块 A 中安装任何新模块时,我总是从 npm 得到错误找不到本地模块(npm link-ed)。
C:\web\module-b>npm install
npm ERR! code E404
npm ERR! 404 Not Found: @mynamespace/module-b@^0.0.1
我按照建议 here 检查了两个模块中 package.json
中的 main
属性。有几个类似的问题,但 none 似乎正是这个问题或给出了有效的解决方案。
现在我正在从 package.json 中手动删除所有提及的 linked 模块,然后我 运行 npm 命令,然后将它们添加回 package.json
我正在使用 npm 6.1.0
编辑:啊,这可能很重要? @mynamespace/module-b 在 NPM 注册表中尚不存在,仅存在于本地
Right now I'm manually removing all mentions of linked modules from package.json, then I run npm commands, and than I add them back to package.json
不幸的是,这是唯一可行的方法。如果你只指定一个版本(i.e "@mynamespace/module-b": "^0.0.1",
或 "*"
),npm install
将始终搜索 npm 注册表,所以 运行ning npm install
将用它在 npm 注册表中找到的内容覆盖项目 node_modules
中的内容(或在这种情况下抛出 404)。
假设您已经阅读了 this 文章,没有办法使用 npm link
方法以及 运行 npm install
。为此,您必须在主项目的 package.json
中显式写入本地包的路径(然后在您发布包后将其改回)。
"dependencies": { "@mynamespace/module-b": "file:../../module-b", },
希望对您有所帮助。
如果您将 "install" 脚本添加到 package.json,Npm 可以自动执行此操作,该脚本会在 npm 安装后立即运行。
"scripts": {
"install": "npm link <your package>"
},
OP在这里。我最近 switched to yarn, which is very compatible with npm. Yarn has a thing called workspaces 更好地处理了整个链接问题。自从切换后就没有出现过上述问题。
删除 package-lock.json
然后 运行 npm link <package_name><local_package_path>
修复了错误。