我正在尝试构建一个 React 应用程序,但是当我执行命令时npm -i出现以下错误:
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)
我正在使用 MacOS High Sierra。我尝试使用以下命令将 NPM_TOKEN 设置为环境变量:
set -x NPM_TOKEN = xyz
但它不起作用。问题是什么?
您遇到的错误表明${NPM_TOKEN}您的 npm 配置中的环境变量未正确替换。这种情况通常在环境变量设置不正确或设置时出现语法错误时发生。
${NPM_TOKEN}
NPM_TOKEN以下是在 MacOS 上正确设置环境变量并解决问题的步骤:
NPM_TOKEN
确保设置环境变量时等号两边不带空格。在 MacOS(和其他类 Unix 系统)上,可以使用以下命令在 shell 中设置环境变量:
export NPM_TOKEN=xyz
您可以通过运行以下命令来验证环境变量是否设置正确:
echo $NPM_TOKEN
xyz如果环境变量设置正确,则应该输出此内容。
xyz
您的 npm 命令似乎有拼写错误。npm -i安装依赖项的正确命令应该是 ,而不是npm install,或者直接是npm i:
npm install
npm i
有时,问题可能出在您的.npmrc配置文件中。确保您的.npmrc文件(通常位于您的主目录或项目目录中)NPM_TOKEN正确引用。它应该看起来像这样:
.npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
打开你的终端。
设置
环境变量:
如果仍然遇到问题,请确保在设置环境变量后重新启动终端会话或获取 shell 配置文件(例如.bashrc或):.zshrc
.bashrc
.zshrc
source ~/.bashrc # for bash users source ~/.zshrc # for zsh users
为了使其NPM_TOKEN在终端会话中持久存在,请将导出命令添加到您的.bashrc或.zshrc文件中:
然后,获取文件:
完成这些步骤后,尝试npm install在项目目录中再次运行。这应该可以解决问题并允许 npm 正确替换${NPM_TOKEN}配置中的占位符。