无法使用Bash&NPMreplaceconfiguration中的env

我正在尝试在我的应用程序中使用私有NPM模块,并且需要设置适当的NPM访问令牌,以便第三方工具(Heroku和CI)可以访问并安装该模块。

我在~/.bash_profile设置了以下行:

 export NPM_TOKEN="XXXXX-XXXXX-XXXXX-XXXXX" 

然后在/path/to/app/.npmrc我有

 //registry.npmjs.org/:_authToken=${NPM_TOKEN} 

但是,每当我打开我的terminal,我在启动时出现以下错误:

 Error: Failed to replace env in config: ${NPM_TOKEN} at /Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/config/core.js:429:13 at String.replace (native) at envReplace (/Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/config/core.js:424:12) at parseField (/Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/config/core.js:400:7) at /Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/config/core.js:338:17 at Array.forEach (native) at Conf.add (/Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/config/core.js:337:23) at ConfigChain.addString (/Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/node_modules/config-chain/index.js:244:8) at Conf.<anonymous> (/Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/config/core.js:325:10) at /Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:76:16 /Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/npm.js:29 throw new Error('npm.load() required') ^ Error: npm.load() required at Object.npm.config.get (/Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/npm.js:29:11) at exit (/Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/utils/error-handler.js:58:40) at process.errorHandler (/Users/marcthomas/.nvm/versions/node/v4.2.1/lib/node_modules/npm/lib/utils/error-handler.js:385:3) at emitOne (events.js:77:13) at process.emit (events.js:169:7) at process._fatalException (node.js:221:26) nvm is not compatible with the npm config "prefix" option: currently set to "" Run `nvm use --delete-prefix v4.2.1 --silent` to unset it. 

但是,运行echo $NPM_TOKEN返回正确的标记,所以variables肯定存在。

如果我运行source ~/.bash_profile错误消失,我可以正常安装。

任何帮助赞赏,因为我在这个问题上抨击我的头在墙上!

对我来说这个修复是在.bash_profile之前将npm的东西移出export NPM_TOKEN="XXXXX-XXXXX-XXXXX-XXXXX"

 export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh export NPM_TOKEN="XXXXX-XXXXX-XXXXX-XXXXX" 

 export NPM_TOKEN="XXXXX-XXXXX-XXXXX-XXXXX" export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 

在你的情况下,你必须做这个rm -f ./.npmrc 。 这对我有效。