Npm:仅在作为依赖项安装时运行 postinstall 脚本

标签 npm babeljs npm-scripts

我开发了一个 npm 包(“node_commons”),它包含在我的其他项目中,如下所示:

package.json(其他项目)

"node-commons": "git+ssh://git@stash.custom.domain.net:7999/npm/libs/node_commons.git"

node_commons 包是用 ES6 编写的,但是以后不支持这个版本,所以我使用 postinstall 脚本用 babel 转译它。

package.json (node_commons)
"postinstall": "babel src -d src"

这工作正常。当包作为依赖项包含在我的项目中时,文件将被转译。

我的问题:当我开发 node_commons 包时,我使用 npm install安装内部依赖项。但后来我不想转换它。 我只想编译,当包作为依赖安装时 (例如在我的另一个项目中)。有没有办法做到这一点?

像这样的东西:

package.json (node_commons)
"postinstall-as-dependency": "babel src -d src"

最佳答案

如果我理解正确,您希望您的包运行 postinstall仅当用户将其作为依赖项( npm install node-common )安装时才编写脚本?

当您的安装后脚本运行时,它具有 npm_config_save_dev可用,当用户使用 --save-dev 安装软件包时,这是“真的”旗帜:

"postinstall": "! [ $npm_config_save_dev ] && echo \"Installed as a dependency\" || \"Installed as a dev dependency\""

关于Npm:仅在作为依赖项安装时运行 postinstall 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54212147/

相关文章:

node.js - 尝试安装 firebase-tools 时出现错误 "shasum check failed"

scripting - Deno:如何替换 npm 脚本 (package.json)

javascript - 如何通过 npm 更改用于引导 reactJs 的默认配置文件

npm - 如何计算已安装包的数量,包括依赖项

node.js - 如何解决 gitbook-cli 超过最大调用堆栈大小错误?

c++ - 所有 Visual Studio 安装程序都会崩溃,并且可视化构建工具也无法工作

android - 错误: Requiring module "node_modules\react-native-reanimated\src\Animated.js"

javascript - Chrome 源 map 无法与 Babel 一起使用

javascript - Babel/RequireJS + 类型 "RangeError: Maximum call stack size exceeded"

javascript - NPM 错误 : EINTEGRITY: Integrity checksum failed using sha 512