安装包时,npm 或 yarn 是否从 VCS 克隆和 运行 构建脚本?
Does npm or yarn clone from VCS and run build script when install a package?
我正在研究npm,我有一些问题。
npm 从哪里获取包?即当 运行 npm install <package-name>
或 yarn add <package-name>
.
获取包时,npm 获取原始包还是获取然后构建它(如运行 package.json
中编写的构建脚本)?
发布包时,需要package.json
的repository
字段?
- 用于发布的存储库和
pacakge.json
中的存储库可以不同吗?
回答您的问题:
npm
从 NPM 包注册表中获取它们,yarn
也是如此,但 Yarn 可能在它前面有一个代理注册表。通常,您可以说,这两种工具默认都从 https://npmjs.com 获取它们的包。
- 它获取发布时的包(所以,简而言之,答案是 "raw")。构建取决于发布者并且取决于包的类型。通常,某些
prepublish
任务会在 dist/
(或包中的任何其他位置)中构建某些内容,并且这些文件也随其他人下载的包一起提供。安装包后很少发生构建(这里的例外是使用 node-gyp 构建的库包装包)。
- 据我所知,存储库字段不是必需的,但最好包含它(例如,它将显示在 NPM 网站上)。
- 从技术上讲,是的。您可以在
repository
中指定任何存储库,但指定一个不是包源的存储库没有多大意义。
如果您总体上想详细了解 npm
的工作原理,请在 https://docs.npmjs.com/
查看它的文档
我正在研究npm,我有一些问题。
npm 从哪里获取包?即当 运行
npm install <package-name>
或yarn add <package-name>
.获取包时,npm 获取原始包还是获取然后构建它(如运行
package.json
中编写的构建脚本)?发布包时,需要
package.json
的repository
字段?- 用于发布的存储库和
pacakge.json
中的存储库可以不同吗?
回答您的问题:
npm
从 NPM 包注册表中获取它们,yarn
也是如此,但 Yarn 可能在它前面有一个代理注册表。通常,您可以说,这两种工具默认都从 https://npmjs.com 获取它们的包。- 它获取发布时的包(所以,简而言之,答案是 "raw")。构建取决于发布者并且取决于包的类型。通常,某些
prepublish
任务会在dist/
(或包中的任何其他位置)中构建某些内容,并且这些文件也随其他人下载的包一起提供。安装包后很少发生构建(这里的例外是使用 node-gyp 构建的库包装包)。 - 据我所知,存储库字段不是必需的,但最好包含它(例如,它将显示在 NPM 网站上)。
- 从技术上讲,是的。您可以在
repository
中指定任何存储库,但指定一个不是包源的存储库没有多大意义。
如果您总体上想详细了解 npm
的工作原理,请在 https://docs.npmjs.com/