与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/
- 在您的testing文件夹或您的文件夹:
sudo npm install -g express@2.5.8
- 从您的实际位置调用快递:
在/ 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'命令。 另请参见安装快递