npm或Thread是否从VCS克隆并在安装软件包时运行构建脚本?

npm或Thread是否从VCS克隆并在安装软件包时运行构建脚本?,npm,yarnpkg,Npm,Yarnpkg,我正在研究npm,我有一些问题 npm从哪里获得包?i、 e.运行npm安装时或纱线添加时 获取包时,npm是将包作为原始文件获取,还是先获取然后构建(比如运行在package.json中编写的构建脚本) 发布包时,需要package.json的repository字段吗 用于发布的存储库和pacakge.json中的存储库之间可能不同 回答您的问题: npm从npm包注册表获取它们,而warn也从npm包注册表获取它们,但是warn前面可能有一个代理注册表。通常,您可以说,默认情况下,这两种工

我正在研究npm,我有一些问题

  • npm从哪里获得包?i、 e.运行
    npm安装时
    纱线添加时

  • 获取包时,npm是将包作为原始文件获取,还是先获取然后构建(比如运行在
    package.json
    中编写的构建脚本)

  • 发布包时,需要
    package.json
    repository
    字段吗

  • 用于发布的存储库和
    pacakge.json
    中的存储库之间可能不同

  • 回答您的问题:

  • npm
    从npm包注册表获取它们,而
    warn
    也从npm包注册表获取它们,但是warn前面可能有一个代理注册表。通常,您可以说,默认情况下,这两种工具都从中获取其包
  • 它在发布包时获取包(因此,简而言之,答案是“raw”)。构建由发布者决定,并取决于包的类型。通常,一些
    prepublish
    任务会将某些内容构建到
    dist/
    (或软件包中的任何其他位置),这些文件也会随软件包一起提供,然后由其他人下载。在安装包之后很少进行构建(使用节点gyp构建的库包装包除外)
  • 据我所知,repository字段不是必需的,但最好包含它(例如,它将显示在NPM网站上)
  • 从技术上讲,是的。您可以在
    repository
    中指定任何存储库,但是指定一个不是包源的存储库没有多大意义
  • 如果您想了解更多关于
    npm
    工作原理的信息,请访问