关于windows中安装Nodejs模块的问题

关于windows中安装Nodejs模块的问题

node.js安装模块在windows中,只要在cmd 中输入npm install name

name为要安装的模块名;

本来以为这样就好了,但是写了一个confirm.js文件,

var async=require(‘async’) ;

if(async)

console.log(‘The module has been installed succesfuly!’)

else

console.log(‘Error!’);

文件写好之后用node e:/node/confirm.js一运行,结果却是can not find the module ‘async’;

明明是已经将模块安装成功的了呀,为什么会找不到!!???

首先要说明的是我的node安装在了D盘,测试文件都在E盘。

在网上找npm安装的资料,想找到npm安装的细节问题,发现使用npm 安装模块的路径是当前路径,

所以又继续写了一个realpath.js文件,看看当前路径到底是哪儿。

这个是realpath。js里面的代码

var fs=require(‘fs’);

fs.realpath(’’,function(err,path){console.log(path)});

使用node e:/node/realpath.js(e:/node/realpath.js这个是我的realpath.js文件的路径)运行后,cmd窗口输出c:\users\Administrator

果不其然我在c:\users\Administrator找到了之前安装的模块,不过模块安装在这里没啥用啊,又require不到,最后想了一个暴力的方法,直接将安装的模块文件剪切到了node安装位置的node_modules文件夹下 ,但是最终还是不能require到

几经周折,终于让我Kill掉了这个问题。

首先,需要将设置npm 环境,在cmd下,输入

npm config set prefix D:\node\forNpm(这个路径是我用来保存npm安装时的相关文件的)接着下一个命令

npm config set cache D:\node\forNpm 下一个命令

npm config set global=true(注意这个原本值为false,修改之后无法再次修改,还不清楚有什么副作用)

然后添加windows环境变量,在用户变量那里添加名为NODE_PATH值为D:\node\node_modules的环境变量

这些配置好之后可以开始安装模块了 (图片没了,复制不过来,有兴趣去我的博客看完整版吧http://lsdrzj.lofter.com/) 如图所示,在npm install async 后面加上-g表示全局安装,成功后会显示安装的版本号和安装位置。

如果你以为到此就OK了的话,那就大错特错了!不得不说甚是麻烦!

接着你按照显示的目录(有可能是隐藏的,先把windows设置成显示隐藏文件吧),找到安装成功的文件的文件async,把他复制(剪切也可以)到刚刚设置的环境变量的目录下,即“然后添加windows环境变量,在用户变量那里添加名为NODE_PATH值为D:\node\node_modules的环境变量”这个路径,也就是你的node的安装路径,一般windows安装完之后,在安装路径下会有一个名为node_modules的文件夹,里面有一个npm文件夹(表明npm是安装程序自带的 ),这步完成后就OVER啦!

现在你可以在任意盘写一个js文件,假如我把上面的confirm.js放在f盘,在cmd里输入node f:/confirm.js 一回车你会发现不会显示can not find the module "async"了,安装其他模块也是如此,但是自定义模块用不着这样安装。

如果有错还请各位大牛指出啊!小弟在此谢过了!


2 回复

关于Windows中安装Node.js模块的问题

在Windows系统中安装Node.js模块时,经常会遇到一些问题。本篇将详细介绍如何正确安装和配置Node.js模块,以确保模块能够被正确加载。

基础安装步骤

首先,确保你已经安装了Node.js和npm。可以通过以下命令检查是否已安装:

node -v
npm -v

如果尚未安装,可以从Node.js官网下载最新版本。

安装模块

安装模块的基本命令是在CMD或PowerShell中运行:

npm install <module-name>

例如,安装async模块:

npm install async

模块无法找到的问题

假设你在编写一个JavaScript文件confirm.js,其中引用了async模块,但运行时报错can not find the module 'async'。这通常是因为Node.js无法找到模块的路径。

配置npm路径

默认情况下,npm会在当前工作目录中安装模块。为了确保模块能被全局访问,你需要配置npm的全局安装路径。

  1. 设置全局安装路径

    在CMD或PowerShell中执行以下命令,设置全局安装路径:

    npm config set prefix D:\node\forNpm
    
  2. 设置缓存路径

    设置npm的缓存路径:

    npm config set cache D:\node\forNpm
    
  3. 设置全局安装标志

    设置全局安装标志为true

    npm config set global true
    
  4. 配置环境变量

    添加一个新的环境变量NODE_PATH,指向全局模块的安装路径:

    • 打开“系统属性” -> “高级系统设置” -> “环境变量”
    • 在用户变量部分,新建一个名为NODE_PATH的变量,值为D:\node\node_modules

验证安装

安装完成后,可以通过全局安装命令来验证模块是否安装成功:

npm install -g async

该命令会在指定的全局安装路径中安装async模块,并显示安装的版本号和路径。

使用模块

现在,你可以在任何目录下创建并运行包含async模块的JavaScript文件。例如:

// confirm.js
var async = require('async');

if (async) {
    console.log('The module has been installed successfully!');
} else {
    console.log('Error!');
}

运行该文件:

node f:/confirm.js

如果一切正常,你应该能看到输出The module has been installed successfully!

总结

通过以上步骤,你可以正确地在Windows系统中安装和配置Node.js模块,避免模块无法找到的问题。确保配置正确的全局安装路径和环境变量是关键。


针对您遇到的问题,主要是由于 npm 默认的全局安装路径与 Node.js 的执行路径不一致导致的。解决方法是配置 npm 的全局安装路径,并且设置 NODE_PATH 环境变量,使 Node.js 能够找到全局安装的模块。

以下是具体步骤:

  1. 设置 npm 全局安装路径: 打开命令行工具(CMD 或 PowerShell),输入以下命令:

    npm config set prefix D:\node\forNpm
    npm config set cache D:\node\forNpm
    

    这些命令将 npm 的全局安装路径设置为您指定的位置。

  2. 设置环境变量 NODE_PATH

    • 右键点击“计算机”或“此电脑”,选择“属性”。
    • 点击“高级系统设置”。
    • 在“高级”选项卡下,点击“环境变量”按钮。
    • 在“用户变量”部分,点击“新建”,添加一个新的用户变量:
      • 变量名:NODE_PATH
      • 变量值:D:\node\forNpm\node_modules
    • 如果您希望所有用户都生效,可以在“系统变量”部分进行相同的设置。
  3. 安装模块: 现在您可以全局安装模块了,例如:

    npm install -g async
    
  4. 验证安装: 创建一个简单的测试文件 confirm.js

    var async = require('async');
    
    if (async) {
        console.log('The module has been installed successfully!');
    } else {
        console.log('Error!');
    }
    

    运行该文件:

    node confirm.js
    

    如果一切正常,您应该会看到 “The module has been installed successfully!” 的输出。

通过以上步骤,您应该能够正确地在 Windows 上安装并使用全局 Node.js 模块。

回到顶部