NPM基础与nave和Node.js
我最近安装了node.js,并被告知express是进行路由和build立Web应用程序开发的方式。
我安装了最新版本的节点,显然与最新的express不兼容。
我抬起头,发现了nave …和RVM一样,nave允许你切换节点的版本。 所以我跑nave.sh安装0.4.11 …这工作成功,我能够运行。
npm install express -g。
我想,应该在全球安装快递。
所以我运行快速testapp
创造
创build:testapp create:testapp / package.json create:testapp / app.js create:testapp / public / stylesheets create:testapp / public / stylesheets / style.css create:testapp / public / images create:testapp / public / javascripts create :testapp / views create:testapp / views / layout.jade create:testapp / views / index.jade
然后我cd testapp /节点app.js
我得到错误:无法find模块“expression”
这是通常的行为?
由于Express是在packages.json中,所以如果我运行npm install -d,它会在我的应用程序中创build一个node_modules目录,而不仅仅是符号链接到我的节点path中的node_modules。
一句话,是的,这是通常的行为。
当你用-g选项使用NPM安装软件包时,它会在全局安装软件包,这样可以将可执行文件放在你的path上(比如你使用的快速脚本)
但是,它不会将这些软件包放在任何可以find它们的地方。
要安装它,所以节点可以find包,你也必须这样做
cd "your express app" npm install express
在本地安装(到应用程序目录的根目录下的node_modules文件夹)。
这主要是为了避免任何依赖冲突,虽然看起来很愚蠢,但实际上它确实是非常有用的。
如果你有一些真正的理由想要使用你的全局安装(比如说你有很多应用程序要保证它们总是共享相同的版本),你可以使用npm link命令。
对于NPM和全球与本地的一个很好的概述看这个博客文章。
如果您在Windows上,请将位置添加到您的path中。
export NODE_PATH =“C:\ Users \ IMarek \ AppData \ Roaming \ npm \ node_modules”
将IMarek
更改为您的用户名。