gpt4 book ai didi

node.js - npm install 不构建供应商可执行文件

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:34 27 4
gpt4 key购买 nike

TL;DR:为什么 npm 不构建依赖项的二进制可执行文件,以及如何在不显式 npm 重建 的情况下构建它们?

我的项目在常规 package.json 中描述了其依赖项。当我运行 npm install 时,所有软件包都按预期安装在 node_modules 中。但是,三个包具有供应商子目录,这些子目录中应该包含二进制可执行文件,但它们没有按预期进行编译。

$ ls /usr/src/app/node_modules/optipng-bin/vendor/
ls: cannot access /usr/src/app/node_modules/optipng-bin/vendor/: No such file or directory

要解决此问题,我需要在 3 个包中的每一个上运行“npm重建”:

  • npm 重建 node-sass
  • npm 重建 jpegtran-bin
  • npm 重建 optipng-bin

$ npm rebuild optipng-bin

> optipng-bin@3.0.4 postinstall /usr/src/app/node_modules/optipng-bin
> node lib/install.js

✔ optipng pre-build test passed successfully

optipng-bin@3.0.4 /usr/src/app/node_modules/optipng-bin

$ ls /usr/src/app/node_modules/optipng-bin/vendor/
optipng

当我单独运行npmrebuild时,我想它也许会“知道”构建其中的每一个,但相反,它会重建一些其他包(没有可执行文件) :

$ npm rebuild

> history@1.13.1 postinstall /usr/src/app/node_modules/history
> node ./npm-scripts/postinstall.js

> react-router@1.0.0 postinstall /usr/src/app/node_modules/react-router
> node ./npm-scripts/postinstall.js

> spawn-sync@1.0.13 postinstall /usr/src/app/node_modules/spawn-sync
> node postinstall

如何让 npm 在其供应商目录中安装属于这 3 个依赖项的二进制可执行文件(无需为每个依赖项进行显式重建)?

最佳答案

事实证明,这是 npm 3.3.7(也可能是其他版本的 npm)中的一个错误。升级到 npm 3.5.3 为我解决了这个问题。请参阅https://github.com/npm/npm/issues/6679

关于node.js - npm install 不构建供应商可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34443424/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com