我有几个不在npm网站上的私有模块,我想在我的应用程序中使用它们,但在Elasticbeanstalk上传时遇到几个问题。 (Elastic beanstalk在每次上传后运行它的npm install。)
AWS最初抱怨它无法在NPM上找到这些私有模块,所以我从package.json文件中删除了它们的条目。
删除后,我再次使用包含这些软件包的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"
},
答案 0 :(得分:1)
如果您希望不在npm上查找某些包,则需要有一种内部发布包的方式。
在您的个人套餐中,您需要添加
"publishConfig":{"registry":"http://my-internal-registry.local"}
到package.json
文件。
这将允许您在该位置查找包,而不是直接转到NPM。
https://docs.npmjs.com/misc/registry
然后在你的〜/ .npmrc文件中,你可以指定一个注册表,npm将在npm上查找模块之前先使用它。