当前位置:  开发笔记 > 编程语言 > 正文

有没有办法如何在"prestart"npm脚本中自动运行"nvm use"?

如何解决《有没有办法如何在"prestart"npm脚本中自动运行"nvmuse"?》经验,为你挑选了1个好方法。

我想在运行"npm start"时自动调用"nvm use".所以我想出了这个解决方案:

的package.json

"scripts": {
"prestart": "sh test.sh",
"start": "nodemon index.js"
}

.nvmrc

4

test.sh

#!/bin/bash

if [ -d ~/.nvm ]
  then
    source ~/.nvm/nvm.sh

    nvm use
fi

这工作并在nvm版本控制台输出之间切换是:

> sh test.sh

Found '/my-user-path/.nvmrc' with version <4>
Now using node v4.2.2 (npm v2.14.7)

> app@1.0.0 start /app-path/
> nodemon index.js

但是当我调用form index.js"console.log(process.versions);"时 nvm脚本可能在不同的进程中执行,因此输出为:

{ http_parser: '2.6.0',
  node: '5.1.0',
  v8: '4.6.85.31',
  uv: '1.7.5',
  zlib: '1.2.8',
  ares: '1.10.1-DEV',
  icu: '56.1',
  modules: '47',
  openssl: '1.0.2d' }

有任何建议如何正确处理这个问题?

谢谢



1> 小智..:

通常在Mac上,nvm.sh文件位于主路径中.如果您有多个Mac用户在使用代码,请使用$ HOME变量.

"scripts": {
    "prestart": "source $HOME/.nvm/nvm.sh; nvm use"
}

我会将此作为对上述回复的评论添加,但我不允许:(

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有