ncc

将 Node.js 项目编译为单个文件
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 Node.js 扩展
软件类型 开源软件
地区 不详
投 递 者 孙俊彦
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ncc 是一个简单的 CLI,可以将 Node.js 项目编译为单个文件,包括项目的依赖与 gcc-style。

功能

  • 将最小包发布到npm
  • 仅将相关应用程序代码发送到无服务器环境(云函数)
  • 不用浪费时间配置捆绑包
  • 通常启动时间更短,I / O开销更少
  • 编译语言的体验(如:go

设计目标

  • 零配置
  • TypeScript 支持
  • 仅支持 Node.js 程序作为输入/输出
  • 支持所有 Node.js 模式和 npm 模块

用法

安装

npm i -g @zeit/ncc

用法

$ ncc build input.js -o dist

输出的Node.js的身体结实input.jsdist/index.js

执行测试

对于测试和调试,可以将文件构建到临时目录中,并使用以下命令执行完整的源映射支持:

$ ncc run input.js

使用TypeScript

唯一的要求是指ncc.ts.tsx文件。一个tsconfig.json 文件是必要的。您很可能希望表明es2015支持:

{
  "compilerOptions": {
    "target": "es2015",
    "moduleResolution": "node"
  }
}

以编程方式从Node.js

require('@zeit/ncc')('/path/to/input', {
  // provide a custom cache path or disable caching
  cache: "./custom/cache/path" | false,
  // externals to leave as requires of the build
  externals: ["externalpackage"],
  minify: false, // default
  sourceMap: false, // default
  sourceMapBasePrefix: '../' // default treats sources as output-relative
  // when outputting a sourcemap, automatically include
  // source-map-support in the output file (increases output by 32kB).
  sourceMapRegister: true, // default
  watch: false, // default
  v8cache: false, // default
  quiet: false, // default
  debugLog = false // default
}).then(({ code, map, assets }) => {
  console.log(code);
  // Assets is an object of asset file names to { source, permissions, symlinks }
  // expected relative to the output code (if any)
})

watch: true设置,构建产物不是一个promise,但具有以下特征:

{
  // handler re-run on each build completion
  // watch errors are reported on "err"
  handler (({ err, code, map, assets }) => { ... })
  // handler re-run on each rebuild start
  rebuild (() => {})
  // close the watcher
  void close ();
}
 相关资料
  • 问题内容: 在kivy论坛中没有得到回应,因此请在这里尝试。 当我将教程pong代码编译为一个文件可执行文件时,我仍然必须将pong.kv文件包含在同一文件夹中才能运行。否则,启动exe时出现以下错误: 如何使它作为一个可执行文件运行。这是我的pong.spec文件: 请注意,我尝试将pong.kv包括在数据列表中,但这没有帮助。 谢谢,-Raj 问题答案: 根据KeyWeeUsr提供的链接(将数

  • 编译 Java 项目 一个项目可以关联多个编译器。 java 项目关联的是 java 编译器。可以通过以下方式来查看项目关联的编译器: 在 Package Explorer 视图中鼠标右击项目并选择 Properties 在左侧的树形菜单中点击 Builders java编译器用于编译java项目。通过点 New 按钮我们可以让java项目关联 Ant builder 编译器。 java 编译器通

  • This tutorial describes the base compilation commands provided with OCaml. It is useful to learn these commands to understand OCaml's compilation model. However, eventually you will want to use a buil

  • 问题内容: 我已经搜索过了,但是找不到或无法理解。 现在我不是Java程序员,但是我需要将一个Java文件编译成一个现有的(已编译的)Java程序。该Java代码的源代码对我 不可 用,因此我无法编译整个项目。 我对反编译原始项目不感兴趣。 如何仅使用JDK和javac快速完成此操作?(通过命令行是我的首选。) 我知道这样做必须禁用单个java文件外部的错误检查,因为它无法读取依赖项。 在此先感谢

  • 我知道这个问题已经在几个方面被问到,但希望澄清,因为我没有Linux测试,我会把项目发送给谁将使用Linux的人。 问题:有一个有几个库的Netbeans Java项目(请参见pic),我需要压缩并将整个项目发送给某人,并给他们在Linux下编译和打开它的指导。 我读过:Link1、Link2、Link3等等。