node和npm开启本地命令模式
node和npm启动本地命令环境
问题原因
在node使用中, 会安装很多第三方模块, 这些第三方模块会带有一些命令, 比如webpack
命令. 如果直接输入webpack
命令, 将使用全局中的webpack
命令. 但是本地的webpack
版本和全局中的webpack
版本不一定一致. 会导致各种问题, 新手在处理此类问题中都会一头雾水.
解决思路
将本地的node_modules\.bin
目录加入到环境变量的最前面, 这样在寻找webpack
命令的时候, 会先找到本地node_modules\.bin
目录中的webpack
命令, 这样就不用担心全局中的版本和本地的版本不一致而产生问题.
解决方案
使用local-mode
模块, local-mode
模块会使用默认使用node_modules\.bin
目录中命令.
安装
npm install local-mode --global
使用
没有开启本地环境, 使用的是全局中的webpack
命令, 版本为3.12.0
webpack -v # /usr/local/node/bin/webpack
# 3.12.0
切换到项目根目录
cd $PROJECT_ROOT_DIRECTORY
开启本地命令模式
local-mode
再次执行webpack
命令时, 使用的是本地./node_modules/.bin/webpack
命令.
webpack -v # ./node_modules/.bin/webpack
# 4.29.6
适用范围
local-mode
模块适用于windows linux和mac, 支持所有第三方模块导出的命令.