fd.*_*nov 17 node.js npm node-modules reactjs
我正在尝试构建一个React应用,但是当我执行命令时npm -i
它给了我以下错误:
Error: Failed to replace env in config: ${NPM_TOKEN}
at /usr/local/lib/node_modules/npm/lib/config/core.js:415:13
at String.replace (<anonymous>)
at envReplace (/usr/local/lib/node_modules/npm/lib/config/core.js:411:12)
at parseField (/usr/local/lib/node_modules/npm/lib/config/core.js:389:7)
at /usr/local/lib/node_modules/npm/lib/config/core.js:330:24
at Array.forEach (<anonymous>)
at Conf.add (/usr/local/lib/node_modules/npm/lib/config/core.js:328:23)
at ConfigChain.addString (/usr/local/lib/node_modules/npm/node_modules/config-chain/index.js:244:8)
at Conf.<anonymous> (/usr/local/lib/node_modules/npm/lib/config/core.js:316:10)
at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:78:16
/usr/local/lib/node_modules/npm/lib/npm.js:61
throw new Error('npm.load() required')
^
Error: npm.load() required
at Object.get (/usr/local/lib/node_modules/npm/lib/npm.js:61:13)
at process.errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:205:18)
at process.emit (events.js:182:13)
at process._fatalException (internal/bootstrap/node.js:448:27)
Run Code Online (Sandbox Code Playgroud)
我正在使用MacOS High Sierra。我尝试使用以下命令将NPM_TOKEN设置为环境变量:
set -x NPM_TOKEN = xyz
Run Code Online (Sandbox Code Playgroud)
但这不起作用。问题是什么?
MH *_*har 25
我有一个简单的解决方案来解决这个问题。在您将 NPM_TOKEN 全局设置到您的环境中后,然后替换
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
Run Code Online (Sandbox Code Playgroud)
和
//registry.npmjs.org/:_authToken=$NPM_TOKEN
Run Code Online (Sandbox Code Playgroud)
它在 macOS Catalina 上对我来说效果很好。
小智 21
简单的解决方案:(rm -f ./.npmrc
删除.npmrc文件)
但是,如果您不想删除文件,则只需删除文件中的这一行代码即可.npmrc
。
代码行:(//registry.npmjs.org/:_authToken=${NPM_TOKEN}
删除此代码)
最坏的情况:
nano ~/.bash_aliases
要么 nano ~/.bash_profile
export NPM_TOKEN="XXXXX-XXXXX-XXXXX-XXXXX"
Jez*_*zor 14
更新您的CI部署配置:
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
npm publish
Run Code Online (Sandbox Code Playgroud)
从.npmrc
文件中删除此行:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
Run Code Online (Sandbox Code Playgroud)
您可以在我的一个GitHub存储库中看到该解决方案在实践中使用:https : //github.com/Jezorko/lambda-simulator/blob/master/.travis.yml
加密的环境变量是NPM令牌。
我在这里和这个问题下都看到了答案,建议您简单地完全删除变量设置行或.npmrc
文件。
事实是,.npmrc
VCS系统可能不会忽略该文件,对其进行修改可能会导致意外将其推送到项目的存储库。此外,该文件可能包含其他重要设置。
这里的问题是.npmrc
设置环境变量时不允许使用默认值。例如,如果允许使用以下语法,则该问题将不存在:
//registry.npmjs.org/:_authToken=${NPM_TOKEN:-undefined}
dan*_*ang 13
如果你只是第一次设置你的 ~/.profile (OSX, Ubuntu) 并添加了这一行:export NPM_TOKEN="XXXXX-XXXXX-XXXXX-XXXXX"。然后你必须在终端输入这一行:
source ~/.profile
Run Code Online (Sandbox Code Playgroud)
npm install
在 IDE(如 WebStorm)中运行是我的问题。我添加了 NPM_TOKEN 环境变量.bash_profile
并重新启动了我的终端,但不是我的 IDE!直到我重新启动 IDE 后,IDE 才接收到对环境的更改。
归档时间: |
|
查看次数: |
17004 次 |
最近记录: |