我在github注册表中发布了一个私有模块,并计划在两个应用程序中使用它。
在我的本地开发环境中,按照npm i @org/packagename
的说明进行安装,并将其像@org/packagename: 1.1.0
一样列在package.json中,并且一切正常。我可以要求安装它。
部署到生产后,在启动应用程序时找不到软件包。如果我以提供@org/packagename
的相同方式手动安装,则它会像package.json
一样列在packagename: 1.1.0
中,而没有前置@org
。
当我在带有require('@org/packagename')
的代码中要求它时,它表明找不到该模块。使用`require('packagename')-可以神奇地工作。
我的/home/user/.npmrc
当前看起来像这样-我在这里尝试了几种不同的配置:
//registry.npmjs.org/:_authToken=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx #other private npm registry module
//npm.pkg.github.com/:_authToken=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx #required to fetch the private module
@org:registry=https://npm.pkg.github.com
registry=https://registry.npmjs.org/
always-auth=true
已部署的项目文件夹具有自己的.npmrc
,它必须在本地运行,如下所示:
@org:registry=https://npm.pkg.github.com
@org:registry=https://registry.npmjs.org
我发现产品环境中package.json
(而不是预期的node_modules/packagename
)文件夹中node_modules/@org/packagename
的内容不同于我定义的本地内容。我
我找不到有关省略@org名称的足够信息,我想我的.npmrc或npm-cli配置错误。我猜我在某个地方将npm配置为默认包含@org范围。
希望我提供了足够的信息。