【问题标题】:NPM: How to add a "post-install" hook that's not run for package consumers?NPM:如何添加不为包消费者运行的“安装后”挂钩?
【发布时间】:2020-10-04 01:59:06
【问题描述】:

我正在编写一个 NPM 模块。

在本地开发模块时,我想在每个npm install 之后自动执行一些任务。

但是,我希望在我的库的使用者执行 npm install 时执行这些步骤,并且我希望在每次执行之后执行这些步骤npm packnpm publish 是我在开发过程中创建的(所以这排除了使用 prepublishprepare 脚本)。

实现这一目标的最简单方法是什么?

(我考虑过:(a)发布一个单独的 package.json 不带 install 脚本,(b)在项目的根目录中创建一个用户调用的 ./install.sh 而不是 npm install...但这有点糟糕。)

【问题讨论】:

    标签: javascript node.js npm package.json


    【解决方案1】:

    这里的install:local 脚本将在npm install 仅在本地运行之后运行(即当消费者安装您的软件包时不运行)。

    package.json:

    {
      ...,
      "scripts": {
        "prepare": "case \"$npm_config_argv\" in *\"\\\"install\\\"\"*|*\"\\\"ci\\\"\"*) npm run install:local ;; esac",
        "install:local": "echo 'npm install' was run directly in the project, and not by a library consumer!",
      }
    }
    

    【讨论】:

    • 在 Windows 上不适合我。
    猜你喜欢
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2018-02-28
    • 1970-01-01
    • 2018-10-06
    • 2014-07-21
    • 2016-09-18
    相关资源
    最近更新 更多