在我必须在 Windows 10 上设置的旧项目中,我们要做的第一件事是
yarn install
- 但随后我得到:
[5/5] Building fresh packages...
error C:\Users\...\project\node_modules\dependency-ui: Command failed.
Exit code: 255
Command: NODE_MODULES_BASE_DIR=${NODE_MODULES_BASE_DIR:-}; $NODE_MODULES_BASE_DIR/.bin/yarn-postinstall | true
Arguments:
Directory: C:\Users\...\project\node_modules\dependency-ui
Output:
'NODE_MODULES_BASE_DIR' is not recognized as an internal or external command,
operable program or batch file.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
当我打开该
dependency-ui
的 package.json 文件时 - 我看到:
...
"scripts": {
"postinstall": "NODE_MODULES_BASE_DIR=${NODE_MODULES_BASE_DIR:-}; $NODE_MODULES_BASE_DIR/.bin/yarn-postinstall | true",
...
我尝试设置这个
NODE_MODULES_BASE_DIR
- 现在我将它作为环境变量 - 但仍然遇到相同的错误。
难道这个
postinstall
脚本中的语法是错误的?或者与Windows不兼容?
最终 - 我全局安装了
cross-env
,当我将其附加到依赖项 package.json 中的 postinstall
脚本时 - 然后它就可以工作了。
(有一个烦恼,如果我运行
yarn install
- 它会覆盖依赖项的 package.json 文件,并且 cross-env
的更改消失,我会得到相同的错误。因此 - 在失败之后 - 我使用以下命令进行更改cross-env
,然后运行 yarn postinstall
- 这实际上可以解决问题:) ...)