node和npm启动本地命令环境
第三方模块版本不一致
在node使用中, 会安装很多第三方模块, 这些第三方模块大部分带有一些命令, 比如webpack
命令. 如果直接输入webpack
命令, 将使用全局中的webpack
命令. 但是本地的webpack
版本和全局中的webpack
版本不一定一直. 会导致各种问题, 新手在处理此类问题中都会一头雾水.
解决思路
将本地的node_modules\.bin
目录加入到环境变量的最前面, 这样在寻找webpack
命令的时候, 会先找到本地node_modules\.bin
目录中的webpack
命令, 这样就不用担心全局中的版本和本地的版本不一致而产生问题.
解决方案
- 创建命令文件
在项目根目录, 也就是package.json
同级目录中重建一个文件node-local-env.bat
.
在文件中写入如下命令:
@echo off
set PATH=%~dp0node_modules\.bin;%PATH%
echo Switch To The Local Environment
- 应用本地命令目录
每次启动cmd窗口并切换到项目目录以后, 执行node-local-env
命令, 然后执行webpack
命令, 将会使用项目目录下的node_modules\.bin
目录下的webpack
命令, 而不是全局中的webpack
命令.
使用范围
此方法适用于其他模块导出的命令, 不仅限于webpack
命令, 例如dotcoo
命令.
全局方式
此方法是将node-local-env.bat
文件放在其他目录, 不需要每个项目都创建一个.
在C:\Program Files\nodejs\
目录下创建文件node-local-env.bat
.
在文件中写入如下命令:
@echo off
set PATH=%CD%\node_modules\.bin;%PATH%
echo Switch To The Local Environment
每次启动cmd窗口并切换到项目目录以后, 执行node-local-env
命令即可.