与NPM一起安装时未findExpress模块

当我尝试运行由express创build的app.js文件时,出现以下错误:

$ node app.js node.js:134 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: Cannot find module 'express' at Function._resolveFilename (module.js:320:11) 

当我input'express –version'时,我得到了2.3.3的返回语句。 我用npm来安装express。 我不得不使用这些指令手动制作npm:

 git clone http://github.com/isaacs/npm.git cd npm sudo make install 

错误是Error: Cannot find module 'express'

在安装npm和express之后我需要做些什么来明确地看到由npm创build的模块吗?

我的节点是版本:0.4.6我的快递是版本:2.3.3我的npm是版本:1.0.6

Express全球安装。 我用-g标志来安装它。

编辑:当我尝试“节点-e require.paths”我得到:

['/home/user/.node_modules','/home/user/.node_libraries','/ usr / local / lib / node']

所以,节点没有检测到npm安装。 如何让节点检测npm安装?

我有同样的问题。 这虽然为我工作:

看起来像npm(now?)将节点模块安装到/usr/local/lib/node_modules/而不是/usr/local/lib/node/

我所做的只是将所有从node_modules复制到节点: sudo cp -r /usr/local/lib/node_modules/* usr/local/lib/node/现在它似乎正在为我工​​作。

希望这可以帮助你:-)

  • 安装快递

    npm install -g express

  • 创build一个新的应用程序

    express your_app

  • cd进入应用程序目录

    cd your_app

  • 使用npm链接来parsing模块

    npm link express

对require()使用本地安装,对命令行应用使用全局安装。

如果您同时需要,请使用npm link命令。

在Ubuntu 12.04上,您必须将export NODE_PATH=/usr/local/lib/node_modules到/.bashrc以使用全局安装的模块。

看起来,尽pipenpm已经更新以将全局模块安装到/ usr / local / lib / node_modules中,但是Node自己的require.paths还没有反映出这个改变。

有两个合理的解决scheme:

1.将以下代码添加到应用程序的顶部:

 require.paths.push('/usr/local/lib/node_modules'); 

临:无创,易于添加

Con:需要纪律,未来版本的节点限制对require.paths的访问

2. root身份执行:

 ln -s /usr/local/lib/node_modules /usr/local/lib/node 

临:合理无创

Con:需要root权限,修改linux fs,可能无法通过系统更新

那么在.bashrc.bash_profile中的 NODE_PATH=/usr/local/lib/node_modules呢? 我认为这是真正的正确方法。

如果您使用的是Windows,可能会发生环境variablesNODE_PATH未设置,因此执行节点fileName.js时,将无法find这些库。 检查控制台上的variables,如果不存在,创build它。 为其提供NODE_HOME \ node_modules值,其中NODE_HOME是您的节点安装目录。 这个path是npm install下载每个模块的地方。

设置NODE_PATH=NODE_HOME\node_modules

我正在使用Windows 7,它工作正常。

require.paths被删除,改用NODE_PATH环境variables。

看起来最简单的方法是从应用程序文件夹运行npm install 。 这告诉npm钩住一切。

这是express <appname>之后的最后一条指令:

 ... dont forget to install dependencies: $ cd <appname> && npm install 

对于与Mac电脑快递的所有问题:

解决scheme是:

1.-向您的用户显示.npm文件夹:

sudo chown -R Webmaste /Users/webmaste/.npm/

  1. 在您的testing文件夹或您的文件夹:

sudo npm install -g express@2.5.8

  1. 从您的实际位置调用快递:

在/ usr / local / share下/ NPM /斌/快递

4:sudo cd。 && npm安装

5:最后:

节点应用程序


控制台中的最终消息应该如下所示:

Express服务器在开发模式下在端口3000上侦听

为mac用户

 cd /usr/local/lib/node sudo ln -s ../node_modules/* ./$1 

我安装了gulp ,当我在命令行运行这个gulp命令时,我得到了一个gulp: command not found错误。 它似乎在我的本地文件夹是/home/YOURUSERNAME/.node/lib/node_modules而不是在全局的npm文件夹中安装/home/YOURUSERNAME/.node/lib/node_modules

您可以运行以下命令来检查npm根文件夹: npm root -g ,它返回我的个人目录/home/YOURUSERNAME/.node/lib/node_modules而不是预期的/usr/local/lib/node_modules

你可以通过运行npm config set prefix /usr/local命令来解决这个问题。

最后用Linux做一个好的方法是使用命令: sudo apt-get install node-express

但是使用express 4,我们必须使用express-generator来创build应用程序框架,使用'npm install express-generator -g'安装它,然后运行'express myapp'命令。 另请参见安装快递