与 NPM 一起安装时找不到快速模块
Express module not found when installed with NPM
当我尝试运行由快递创建的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)
当我输入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 之后,我是否需要做一些事情才能让 express 看到 npm 创建的模块?
- 我的节点版本是:0.4.6
- 我的快递是版本:2.3.3
- 我的npm版本是:1.0.6
Express 在全球范围内安装。我使用 -g
标志来安装它。
编辑:当我尝试"node -e require.paths"
时,我得到:
[ '/home/user/.node_modules',
'/home/user/.node_libraries',
'/usr/local/lib/node' ]
因此,节点未检测到 npm 安装。如何让节点检测 npm 安装?
-
安装快速
npm install -g express
-
创建新应用
express your_app
-
CD 到应用目录
cd your_app
-
使用 npm 链接解析模块
npm link express
对 require() 使用本地安装,对命令行应用使用全局安装。
如果同时需要两者,请使用 npm link
命令。
在 Ubuntu 12.04 上,您必须将export NODE_PATH=/usr/local/lib/node_modules
添加到/.bashrc 才能使用全局安装的模块。
虽然 npm 已经更新为将全局模块安装到 /usr/local/lib/node_modules
中,但 Node 自己的require.paths
还没有反映这一变化。
有两种合理的解决方案:
-
将以下代码添加到应用程序的顶部:
require.paths.push('/usr/local/lib/node_modules');
优点:非侵入性,易于添加
缺点:需要纪律,未来版本的节点将限制对
require.paths
的访问
-
以根用户身份执行:
ln -s /usr/local/lib/node_modules /usr/local/lib/node
优点:合理无创
缺点:需要root,修改Linux fs,可能无法在系统更新中幸存下来
我遇到了同样的问题。不过这对我有用:
似乎 npm(现在?)将节点模块安装到/usr/local/lib/node_modules/
而不是/usr/local/lib/node/
我所做的只是将所有内容从node_modules复制到节点:sudo cp -r /usr/local/lib/node_modules/* usr/local/lib/node/
,现在它似乎对我有用。
希望这对你有帮助:-)
.bashrc或.bash_profile中的NODE_PATH=/usr/local/lib/node_modules
呢?我认为这是真正正确的方式。
Set NODE_PATH=NODE_HOME'node_modules
.
我正在使用 Windows 7,它工作正常。
使用的是 windows,则可能会发生未设置环境变量NODE_PATH
的情况,因此当您执行node fileName.js
时,它不会找到库。
检查主机上的变量,如果不存在,请创建它。为其指定NODE_HOME'node_modules
值,其中NODE_HOME
是节点安装目录。此路径是 npm install 在下载时放置每个模块的地方。
require.paths
被删除,请改用NODE_PATH
环境变量。
方法是从应用的文件夹中运行npm install
。这告诉 npm 将所有内容连接起来。
这是express <appname>
之后的最后一条指令:
...
dont forget to install dependencies:
$ cd <appname> && npm install
对于 Linux,一个好方法是使用命令: sudo apt-get install node-express
但是对于 express 4,我们必须使用 express-generator 来制作应用程序框架,使用 'npm install express-generator -g' 安装它,然后运行 'express myapp' 命令。另请参阅安装快速版
适用于 Mac 用户
cd /usr/local/lib/node
sudo ln -s ../node_modules/* ./$1
我安装了gulp
,当我在命令行中运行此gulp
命令时,我遇到了gulp: command not found
错误。它似乎gulp
安装在我的本地文件夹中,该文件夹/home/YOURUSERNAME/.node/lib/node_modules
而不是全局npm
文件夹中。
您可以通过运行以下命令来检查根文件夹npm
:npm root -g
,它返回我的个人目录/home/YOURUSERNAME/.node/lib/node_modules
而不是预期的/usr/local/lib/node_modules
。
您可以通过运行npm config set prefix /usr/local
命令来解决此问题。
对于Mac计算机的express的所有问题:
解决方案是:
- 向用户
chown
.npm 文件夹:sudo chown -R Webmaste /Users/webmaste/.npm/
在您的测试文件夹或文件夹中:
sudo npm install -g express@2.5.8
从您的实际位置调用快递:
/usr/local/share/npm/bin/express
sudo cd . && npm install
最后:
node app
控制台中的最终消息应如下所示:
Express server listening on port 3000 in development mode
- 找不到模块捆绑包
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- 因果报应-找不到模块:错误:无法解析模块'scs'
- module.js在运行iron节点时找不到模块
- 错误:找不到模块'/lib/cli'
- nodeJS中的uglify js“;找不到模块“”;
- 找不到模块'它'当用摩卡/柴测试时
- grunt serve:dist时找不到Angular.js模块,但grunt serve工作正常
- 获取错误模块“;反应”;找不到
- 余烬引擎未捕获错误:找不到模块余烬视图/views/select
- 使用状态语法后找不到模块
- 找不到以前导入的 JS 模块
- 节点.js:找不到模块“柴”
- 错误:使用摩卡测试时找不到模块
- nodemon找不到模块'/路径/to/project/home/index.js'
- 接收'错误:找不到模块'使用browserfy、gullow、react.js
- Sails.js+Grunt"找不到模块“”;错误
- 找不到模块“;睡眠”;,跳跃动作
- Titanium iOS提供can'找不到控制器的模块
- Webpack 缺少模块“找不到模块”