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更改为您的用户名。