NPM在当前目录之外安装软件包
我尝试使用从/ home / iwan / my-project目录中的npm来安装express软件包:
npm install express express@3.3.7 ../node_modules/express ├── methods@0.0.1 ├── cookie-signature@1.0.1 ├── range-parser@0.0.4 ├── fresh@0.2.0 ├── buffer-crc32@0.2.1 ├── cookie@0.1.0 ├── debug@0.7.2 ├── send@0.1.4 (mime@1.2.11) └── commander@1.2.0 (keypress@0.1.0)
奇怪的是npm在当前dir(/ home / iwan / my-project / node_modules / express)中没有安装express软件包,而是在/ home / iwan / node_modules / express中安装了express软件包。
我错过了什么?
如果node_modules
目录中不存在node_modules
目录,则NPM将在较高的目录中查找它,直到find它。 所以,如果父目录有一个node_modules
目录,NPM将假定它是在哪里安装模块。
快速解决这个问题的方法是在要放置模块的位置创build一个空的node_modules
目录。
我相信用npm
安装软件包的最好方法就是制作一个package.json
文件。 像这样,把它放在smae目录中作为你的应用程序。 示例package.json
文件可能如下所示:
{ "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "node app.js" }, "dependencies": { "express": "3.3.5", "jade": "*", "less-middleware": "*", "ejs": "*", "mongoose": "3.6.*" } }
看看依赖关系列表。 只需添加你想要的模块,例如underscore
。 只需将其添加到依赖关系字典。 像这样:
{ "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "node app.js" }, "dependencies": { "express": "3.3.5", "jade": "*", "less-middleware": "*", "ejs": "*", "mongoose": "3.6.*", "underscore": "*" <-------------- Added } }
然后转到你的目录,运行npm install
,然后bam! 所有的软件包及其依赖关系都将为您安装。 它将完成所有的工作,这意味着为你制作你的node_modules
文件夹。 这是我的应用程序目录的样子:
您还可以使用https://docs.npmjs.com/files/package.json
网页中的准则创build一个空白的package.json文件。 然后将其放置在您的项目文件夹中,然后键入npm install
。
- 在SailsJS中devise一个更薄的控制器
- 简单的WebApp – 通过HTML / AWS Javascript SDK将file upload到S3
- 从函数返回结果(javascript,nodejs)
- 对高度请求的队列进行Firebase优化
- 节点,连接/快递和西兰花的全套资产pipe道
- 为什么nodejs / cookie中的cookie签名使用sha1-hashing来比较签名?
- asynchronous瀑布不正确保存与mongoose
- 我该如何debugging一个通过命令行(cli)启动的节点应用程序,比如永远或是主pipe?
- 如何使用webRTC,node.js和socket.io构build多用户video聊天Web应用程序