NPM基础知识与nave和Node.js

时间:2011-09-15 20:19:39

标签: node.js npm

我最近安装了node.js,并被告知express是通过Web应用程序开发进行路由和设置的方法。

我安装了最新版本的节点,显然与最新的快递不兼容。

我抬头找到了nave ...就像RVM一样,nave允许你切换节点的版本。所以我跑了nave.sh install 0.4.11...那就成功了,我就能跑了。

npm install express -g

我想,应该全球安装快递。所以我跑:

express testapp

创建

create : 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/
node app.js

我得到了

  

错误:找不到模块'express'

这是通常的行为吗?

由于express位于 packages.json 中,如果我运行npm install -d,它将在我的应用程序中创建一个node_modules目录,而不仅仅是我节点路径中node_modules的符号链接。

2 个答案:

答案 0 :(得分:4)

总之,是的,这是通常的行为。

当您使用带有-g选项的NPM安装软件包时,它会全局安装它,这样可以在您的路径上放置可执行文件(例如您使用的快速脚本)。

然而,将这些软件包放在节点可以找到它们的任何地方。

要安装它以便节点可以找到包,您还必须

cd "your express app"
npm install express

在本地安装(到应用程序目录的根目录中的node_modules文件夹)。

这主要是为了避免任何依赖性冲突,虽然看起来很愚蠢,但实际上它确实非常有用。

如果您有一些真正的理由想要使用全局安装(例如,您有许多应用程序要确保始终共享相同版本),则可以使用npm link命令。

有关NPM和全球与本地的详细信息,请参阅this博文。

答案 1 :(得分:1)

如果您使用的是Windows,请在路径中添加位置。

export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules"

IMarek更改为您的用户名。