首页 文章

npm install不构建供应商可执行文件

提问于
浏览
2

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

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

$ ls / usr / src / app / node_modules / optipng-bin / vendor / ls:无法访问/ usr / src / app / node_modules / optipng-bin / vendor /:没有这样的文件或目录

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

  • npm rebuild node-sass

  • npm rebuild jpegtran-bin

  • npm rebuild optipng-bin

$ npm rebuild optipng-bin> optipng-bin@3.0.4 postinstall / usr / src / app / node_modules / optipng-bin> node lib /install.js✔optipng预构建测试成功通过optipng-bin@3.0.4 / usr / src / app / node_modules / optipng-bin $ ls / usr / src / app / node_modules / optipng-bin / vendor / optipng

当我自己运行 npm rebuild 时,我想也许会 Build 其中的每一个,但是,它会重建一些其他包(没有可执行文件):

$ 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个依赖项的二进制可执行文件(每个都没有明确的 rebuild )?

1 回答

  • 0

    事实证明这是npm 3.3.7(以及可能的其他版本的npm)中的错误 . 升级到npm 3.5.3为我修复了它 . 见https://github.com/npm/npm/issues/6679

相关问题