GitHub: IT虾米网

ncc 是一个简单的 CLI 工具,可以一键把一个 Node.js 项目编译打包成单个 JS 文件。

安装

npm i -g @zeit/ncc

使用

例如我们有一个项目引入了 chalk 包,首先安装 NPM 依赖:

cd myapp 
npm i chalk

index.js 如下:

const chalk = require("chalk"); 
console.log(chalk.blue.bgRed.bold("Hello world!"));

那么就可以直接用 ncc build

ncc build index.js

即会输出一个 dist/index.js 文件(打包+压缩):

我们通过ncc将我们的npm包,打包成一个JS文件.

然后我们发布的 npm 包,package.json 里面的 dependencies 也不需要去加对应的依赖,npm安装的时候,也就不用去安装对应的依赖了。

这样的好处:

  1. 将依赖包都固定在发包时刻的包里面的内容,其他包再发包,也不影响我们,因为我们最终发的是ncc的产物。
  2. 安装速度变快了,比如原来的模式xxx依赖A,B,C,A又可能引用别的包。最终可能安装一个包,实际安装了几十个包或者上百个包。现在只需要安装1个。
  3. 安装的结果是变少了,比如原来 node_modules 可能占用了50M,现在你可能只要安装 900KB 的东西,硬盘不会因为前端项目太多,导致node_modules大量占用空间了。
  4. 启动速度也能变快,因为原来xxx模块,会去引用A,B,C,都是需要走 require 的流程,这个过程就会耗费一些时间

相关提问

1、ncc跟pkg有什么区别?

ncc生成的产物是 java文件(text),而pkg工具的产物是binary的可执行文件(binary),ncc的产物,我们还需要借助 node xxx.js 运行,而pkg的产物自带运行时,因此在宿主机未安装Node的情况下也可以运行。两者有相同之处,也有各自的应用场景。

 

评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!