Kel*_*elp 47 javascript node.js npm express
当我尝试运行app.jsexpress创建的文件时,我收到以下错误:
$ 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)
Run Code Online (Sandbox Code Playgroud)
当我输入时,express --version我得到一个返回声明2.3.3.我使用npm来安装express.我不得不使用这些说明手动创建npm:
git clone http://github.com/isaacs/npm.git
cd npm
sudo make install
Run Code Online (Sandbox Code Playgroud)
错误是Error: Cannot find module 'express'.
在安装npm和express之后我是否需要做一些事情才能使快递看到由npm创建的模块?
Express全局安装.我用-g旗帜来安装它.
编辑:当我尝试时,"node -e require.paths"我得到:
[ '/home/user/.node_modules',
'/home/user/.node_libraries',
'/usr/local/lib/node' ]
Run Code Online (Sandbox Code Playgroud)
因此,节点未检测到npm安装.如何让节点检测npm安装?
jus*_*ude 68
安装快递
npm install -g express
创建一个新的应用程序
express your_app
进入app目录
cd your_app
使用npm链接来解析模块
npm link express
ezr*_*tre 20
在Ubuntu 12.04上,您必须将export NODE_PATH=/usr/local/lib/node_modules您的/.bashrc 添加到全局安装的模块中.
Rob*_*sch 15
看来,虽然npm已经更新以安装全局模块/usr/local/lib/node_modules,但Node自己require.paths还没有反映出这种变化.
有两种合理的解决方案:
将以下代码添加到应用程序的顶部:
require.paths.push('/usr/local/lib/node_modules');
Run Code Online (Sandbox Code Playgroud)
亲:非侵入性,易于添加
Con:需要纪律,未来版本的节点将限制访问require.paths
以root身份执行:
ln -s /usr/local/lib/node_modules /usr/local/lib/node
Run Code Online (Sandbox Code Playgroud)
亲:合理的非侵入性
Con:需要root,修改linux fs,可能无法在系统更新中存活
小智 8
我有同样的问题.这虽然对我有用:
好像是npm(现在?)安装节点模块/usr/local/lib/node_modules/而不是/usr/local/lib/node/
我所做的只是将所有内容从node_modules复制到节点:sudo cp -r /usr/local/lib/node_modules/* usr/local/lib/node/现在它似乎对我有用.
希望这可以帮助你:-)
| 归档时间: |
|
| 查看次数: |
54118 次 |
| 最近记录: |