【问题标题】:npm private modules errornpm 私有模块错误
【发布时间】:2015-08-08 15:26:42
【问题描述】:

我有几个不在 npm 站点上的私有模块,我想在我的应用程序中使用它们,但在 Elasticbeanstalk 上传时遇到了几个问题。 (Elastic beanstalk 在每次上传后运行它的 npm install)。

  1. AWS 最初抱怨它在 NPM 上找不到这些私有模块,所以我从 package.json 文件中删除了它们的条目。

  2. 删除后,我再次使用包含这些包的 node_modules 文件夹上传应用程序,然后 AWS 开始抱怨

    Error: Cannot find module 'my-private-module-name'
    

我想知道私有模块是如何工作的,所以我不必通过 NPM 至少进行部署,或者作为最后的手段,我会发布它们。

编辑

"dependencies": {
    "body-parser": "^1.12.4",
    "express": "^4.12.3",
    "multer": "^0.1.8",
    "mustache": "^2.0.0",
    "mysql": "^2.6.2",
    "my-private-module": "^1.0.5",
    "redis": "^0.12.1",
    "socket.io": "^1.3.3"
  },

【问题讨论】:

  • 您将模块存储在哪里?只是在一个 git repo 中?
  • 在 node_modules 文件夹中相同,我将所有内容上传到 aws
  • 你是说我可以提供一个 git url 供 npm install 从中提取,我已经编辑了我的 package.son,请进一步指导

标签: node.js npm amazon-elastic-beanstalk npm-private-modules


【解决方案1】:

如果您不希望在 npm 上查找某些包,则需要有一种内部发布包的方式。

在您的个人包中,您需要添加 "publishConfig":{"registry":"http://my-internal-registry.local"}package.json 文件。

这将允许您在该位置查找包,而不是直接转到 NPM。

https://docs.npmjs.com/misc/registry

然后在您的 ~/.npmrc 文件中,您可以指定一个注册表,在 npm 上查找模块之前,npm 将首先使用该注册表。

【讨论】:

    猜你喜欢
    • 2019-07-02
    • 2012-06-07
    • 2016-08-09
    • 2018-10-05
    • 2017-07-17
    • 2015-08-23
    • 2021-11-04
    • 2011-11-12
    相关资源
    最近更新 更多