Sails Node包安装最新版后运行仍为旧版本,求解决方法
解决Sails版本更新后不生效的问题
我碰到过不少类似的情况,你这个问题大概率是系统里存在多个Sails版本,且当前Bash环境优先调用了旧版本,下面一步步帮你排查解决:
1. 先确认当前调用的Sails路径
在Bash里执行这个命令,看看系统现在用的是哪个位置的Sails:
which sails
再对比全局npm包的bin目录路径,执行:
npm bin -g
如果which sails返回的路径和npm bin -g的路径不一样,说明旧版本的Sails在PATH里的优先级更高。
2. 调整PATH优先级,让新的Sails先被调用
把npm全局bin目录加到PATH的最前面,在Bash里执行:
export PATH=$(npm bin -g):$PATH
然后再执行sails -v,应该就能看到1.0.2了。如果要让这个设置永久生效,可以把这句加到~/.bashrc或者~/.bash_profile文件里。
3. 清理npm缓存,避免版本缓存问题
有时候npm的缓存会导致版本识别混乱,执行:
npm cache clean --force
然后重新全局安装一次Sails:
npm install sails@latest -g
4. 项目内调用新版本的小技巧
如果想在项目里确保用的是本地安装的1.0.2版本,可以用npx来调用:
npx sails upgrade
或者在项目的package.json里添加scripts命令,比如:
"scripts": { "sails": "sails", "upgrade": "sails upgrade" }
然后用npm run sails -v或者npm run upgrade来执行,这样会优先使用项目node_modules里的版本。
5. 检查Windows系统环境变量
如果上面的方法都没用,可能是Windows系统的PATH里有旧版本的Sails路径,Bash继承了这个环境变量。你可以打开Windows的“系统属性-高级-环境变量”,在系统PATH里找到旧的Sails路径(比如可能是某个全局node_modules的bin目录),把它删掉,或者把npm的全局bin目录移到最前面。
按照这些步骤来,应该就能解决版本不生效的问题了。
内容的提问来源于stack exchange,提问作者user3904002
相关产品推荐
相关产品推荐

