zoukankan      html  css  js  c++  java
  • 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的情况下也可以运行。两者有相同之处,也有各自的应用场景。

     
  • 相关阅读:
    python生成随机整数
    pycharm怎么修改python路径
    Linux 在 TOP 命令中切换内存的显示单位
    MySQL之limit使用
    Fiddler设置抓取FireFox火狐的包
    火狐FireFox看视频不能全屏显示的问题
    【.Net】exe加密/加壳工具.Net Reactor
    【WPF】使用控件MediaElement播放视频
    【WPF】在MenuItem中下划线“_”显示不正常
    【.Net】Thread.Start()与ThreadPool.QueueUserWorkItem()的区别
  • 原文地址:https://www.cnblogs.com/cangqinglang/p/14785126.html
Copyright © 2011-2022 走看看