与 NPM 一起安装时找不到快速模块

Express module not found when installed with NPM

本文关键字:模块 找不到 NPM 一起 安装      更新时间:2023-09-26

当我尝试运行由快递创建的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还没有反映这一变化。

有两种合理的解决方案:

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

    require.paths.push('/usr/local/lib/node_modules');
    
    • 优点:非侵入性,易于添加

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

  2. 以根用户身份执行:

    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文件夹中。

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

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

对于Mac计算机的express的所有问题:

解决方案是:

    向用户
  1. chown .npm 文件夹:

    sudo chown -R Webmaste /Users/webmaste/.npm/
    
  2. 在您的测试文件夹或文件夹中:

    sudo npm install -g express@2.5.8
    
  3. 从您的实际位置调用快递:

    /usr/local/share/npm/bin/express
    
  4. sudo cd . && npm install

  5. 最后:

    node app
    

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

Express server listening on port 3000 in development mode