npm 安装是否也会构建库

Does npm install also builds the library?

本文关键字:构建 安装 是否 npm      更新时间:2023-09-26

我有一个问题,关于npm。 也在Reddit上尝试过。

让我们以 jQuery npm 为例。
当我npm install jquery时,我在node_modules文件夹中找到一个jquery文件夹,
在其中,即使它被忽略了.gitignore,我也在其中找到了dist.

以下是包的脚本:

"scripts": {
"build": "npm install && grunt",
"start": "grunt watch",
"test": "grunt && grunt test"
},

Grunt 尚未用于构建 - 在我的node_modules中找不到(使用 npm5)。

鸭子dist文件夹从哪里来??

以jQuery为例,尽管我见过很多这样的包。

提前致谢

npm 安装是否也会构建库?

一般来说:这取决于。您可以在package.json文件的scripts部分中指定install脚本,该脚本在有人运行npm install <package>时执行,但建议不要这样做:

不要使用install .使用 .gyp 文件进行编译,prepublish用于其他任何内容。您几乎永远不必显式设置preinstallinstall脚本。如果您正在这样做,请考虑是否有其他选择。installpreinstall脚本的唯一有效用途是用于编译,必须在目标体系结构上完成。


特别是对于jQuery,它似乎是在发布到npm之前(手动)构建的。 jQuery使用grunt来构建库。这将生成dist文件夹:

    build: {
        all: {
            dest: "dist/jquery.js",
            minimum: [
                "core",
                "selector"
            ],

更重要的是,jQuery 有一个.npmignore文件,这意味着在 npm 上发布包时,该文件的使用时间.gitignore。如您所见,它排除dist/文件夹,因此在发布到 npm 时会包含该文件夹。

因此,似乎有人运行以下步骤来发布新版本的jQuery:

npm run build
npm publish