ncc:類似於 gcc 的 Node.js 一鍵編譯打包工具


GitHub: https://github.com/zeit/ncc

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的情況下也可以運行。兩者有相同之處,也有各自的應用場景。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM