NodeJS模块全局安装路径配置

本文详细介绍了NodeJS环境下如何自定义全局模块的安装路径,包括通过npm命令配置全局路径和缓存路径的方法,以及如何在环境变量中设置NODE_PATH和path变量,确保全局模块的正确引用。

 

下载安装NodeJS后,在自己选择的路径下会有如下的文件:

默认情况下NodeJS安装会同时安装npm(模块管理器:用于管理用户require的模块,有全局和本地两种)。

注:全局:执行npm  install  <模块的名字>  -g 就会将模块装在全局路径下,当用户在程序中require(<模块的名字>)的时候不用考虑模块在哪,如果不修改全局路径,用户下载的模块会 默认在C:\Users\Administrator\AppData\Roaming\npm这个路径下。

局部:执行npm  install  <包的名字>(注意少了-g)就会将模块安装在dos窗当前指向的路径下,如:

 

会将模块express安装在对应C:\Users\Administrator下的node_modules中,这时候其他路径项目无法引用到该版本的express模块!

以上NodeJS的环境基本搭建完成,可以尝试运行一些js文件啦~~~

 

But!有时候,会有用户想修改默认的全局路径:

我们要先配置npm的全局模块(node_global)的存放路径以及缓存(global_cache)的路径,例如我希望将以上两个文件夹放在D:\SoftWare\NodeJS_Redis\NodeJS\node_modules下:

1)在D:\SoftWare\NodeJS_Redis\NodeJS\node_modules下建立”node_global”及”node_cache”两个文件夹。如下图

2)在DOS窗中执行:

npm config set prefix “D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global”

npm config set cache “D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_cache”

如果这种方法无法修改还可以:

在nodejs的安装目录中找到node_modules\npm\.npmrc文件

修改如下即可:

prefix = D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global

cache = D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_cache

3)此时,npm模块安装的默认全局路径已经改到了相应的文件夹中,但是 这时候用户还是无法require这些模块,因为电脑系统现在还不知道你把默认路径给改了,所以需要在“我的电脑”-->“右键”-->“属性”-->“高级系统设置”-->“环境变量”打开设置对话框。

4)下面是最关键的地方(决定修改成败的地方!):

①首先在“系统变量”中新建,新建一个名为NODE_PATH的变量,变量值为:之前新建的用于存放全局模块的文件夹中的node_modules文件夹的绝对路径。(告诉系统 用户下载的全局模块在此处)。

即:D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global\node_modules

②新建完NODE_PATH后,还需要告诉系统,node和npm的位置,这时候需要在“环境变量”的对话框“系统变量”这一栏中找到“path”变量,

双击打开,在已有内容的最后先添加一个英文分号“;”,之后检查路径下是否有

D:\SoftWare\NodeJS_Redis\NodeJS;        (node和npm的地址)

下面这一条是如果安装了supervisor需要添加:

D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global;        (supervisor路径,supervisor比较特殊并且只能通过全局的方式安装,具体特殊性如果有兴趣继续往下看!!!)

有且只要这两个内容,多了其他的关于nodejs删除。

——————————————————————————————————————————————————————————————————————————

写在最后:关于supervisor模块安装与运行的特殊性的个人理解:

supervisor这个模块可以随之监控用户修改并执行,省去了用户每次修改完程序再输一遍node ***.js的麻烦。它虽然方便,但是在安装和使用的过程中需要有几个地方注意:

1、安装问题:

如果用户自定义了模块全局路径,这时候一定要在“系统变量”下的“path”变量中添加supervisor模块所在的文件绝对路径。特殊性就在与它的路径不和用户下载的其他模块一起,而是在上一层文件夹中,

  D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global;    supervisor模块所在路径

  D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global\node_modules;     用户下载其他模块所在路径   

其中: node_global是之前创建用于存放所有全局模块的文件夹。

2、执行问题:

执行supervisor最好在项目所在的文件夹路径下执行,否则有可能会出现程序意外终止或者不断创建子进程,尤其在cmd默认路径下执行时会出现程序无法执行的现象。

### 解决Node.js更改npm全局缓存路径时报错的问题 当尝试更改npm全局缓存路径时遇到错误,通常是因为权限不足或配置未正确应用。为了有效解决问题并确保新的全局缓存路径生效,可以按照以下方法处理: #### 1. 修改NPM全局包和缓存路径 通过命令行工具来指定自定义的全局包存储位置与缓存目录的位置。这可以通过`npm config set`指令完成。 ```bash npm config set prefix="F:\nodejs\node_global" npm config set cache="F:\nodejs\node_cache" ``` 上述命令将全局包放置于`F:\nodejs\node_global`文件夹内,并把缓存保存到`F:\nodejs\node_cache`中[^2]。 #### 2. 更新环境变量 为了让操作系统识别新设定好的全局模块路径,在Windows系统里还需要调整系统的环境变量。具体来说就是向PATH环境变量添加刚才设置的新前缀(`prefix`)中的`bin`子目录(即`F:\nodejs\node_global\bin`),并且创建一个新的环境变量`NODE_PATH`指向该路径下的上级目录(`F:\nodejs\node_global`)。这样做的目的是让JavaScript运行时能够找到已安装全局模块[^3]。 #### 3. 处理权限问题 如果即便完成了以上两步之后依旧存在报错现象,则可能是由于目标文件夹缺乏足够的写入权限所引起的。此时应该检查并适当放宽相应文件夹的安全策略——比如给予当前用户对该文件夹及其内部对象完全控制权;或者直接移除位于应用程序数据(AppData)同级目录下带有`.npmrc`扩展名的隐藏文件,不过需要注意的是这样做会使Node.js的全局配置重置回默认状态(C盘)。 #### 4. 确认变更效果 最后一步是要验证所做的改动是否已经成功实施。可通过执行如下命令查看最新的配置详情: ```bash npm config ls ``` 此命令将会打印出所有有效的npm配置项列表,其中应能看到之前手动设置过的`prefix`和`cache`字段对应的值已被更新为预期的目标路径。 #### 5. 版本兼容性考虑 值得注意的一点是在进行任何有关Node.js或其配套工具链(NPM等)的操作前,请务必确认使用的Node.js版本与所需操作相匹配。因为某些较老版本可能并不支持最新特性或是特定功能实现方式有所差异。因此建议保持Node.js处于稳定版之上,并适时同步升级NPM至与其适配的最佳版本[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值