npm上下载的包是开发版本还是生产版本的?

如题,今天用npm下了consolidate,用完后,发现很有意思,就去看了下他的源码,发现一个问题,代码居然是有完整注释且格式非常整齐的(也就是开发版本),并非我之前看到的是被压缩过的(也就是生产版本),所以说:

  1. 从npm上下载的package是开发版本还是生产版本
  2. 如何知道自己下载的包是开发版本还是生产版本的

可能是自己错过了某个知识点,导致现在对此有点迷惑,以往要看源码都是从github中直接把dev分支拉取下来的,因此错误的认为:github上的dev分支是开发版本,npm上的是生产版本。

阅读 149
评论
    1 个回答

    有完整注释且格式非常整齐的也就是开发版本 这是什么因果关系?你自己预设一个逻辑可不行,完全没有这关系。


    npm 的版本号遵循 semver 规则,里面包含什么内容,取决于作者发布了时指定了哪些文件。

    一般来说默认所有文件都会包含,但会主动忽略 node_modules 目录。

    再就是可以通过 package.jsonfiles 字段指定包含哪些文件,相当于白名单。

    也可以通过 .npmignore 文件指定忽略哪些文件,相当于黑名单。


    npm 包可以通过打 tag 的方式,给版本指定一个别名,tag 默认值是 latest,也即最新版。

    当你通过 npm install MYPACKAGE 的方式安装依赖时,不指定版本号,装的就是最新一个 latest

    你也可以打别的 tag,比如有一个 1.1.0 版本是 lastest,再有一个 2.0.0-alpha1 版本是 next 这样(看下图,vue 的)。

    image.png

    装的时候 npm install MYPACKAGE@next 这样指定,就装的是最新一个 next 版本。

    可以这么的来设置一个哪个是最新的正式版,哪个是新版本但还没开发完、先放出来一个测一测。但这跟文件内容 “带不带注释”、“格式整齐不整齐” 一毛钱关系也没有。

      撰写回答

      登录后参与交流、获取后续更新提醒