将 Node.js 项目编译为单个文件 ncc

MIT
JavaScript 查看源码»
跨平台
2019-05-20
左华栋

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 ();
}
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

ncc 0.18.5 发布,将 ts/js 连同node_moudles 打包成单个js 文件

补丁 重新生成yarn.lock文件:a2f18d7 简单的CLI,用于将Node.js模块及其所有依赖项gcc-style编译为单个文件。 动机 将最小包发布到npm 仅将相关应用程序代码发送到无服务器环境(云函数) ...

05/22 09:26

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

使用七牛的文档转换服务将PPT转换为JPG

这段时间公司要做一个把上传的ppt文件转换成为一组jpg文件的功能,我查了查资料,发现可以使用libreoffice先把ppt转成pdf,然后再用imagemagick把pdf转换成为jpg来实现,在机子上测试了一下,...

2016/09/02 10:11
123
0
法国法院书记员将IBM区块链平台用于公司注册

法国商业法庭书记员将使用基于区块链的平台记录公司在该国的法律地位变化。该发展于3月14日正式公布。 区块链网络由IBM和全国文员委员会(NCC)共同开发,据报道,将于2019年由法国商业法庭的...

03/15 07:59
0
0
不小心一个命令触及到了Docker的底限了,他爆发了

在容器里执行 cat /proc/self/pagemap (也许别的文件也行, /proc/self/*肯定行) 就会引爆docker daemon。

2016/07/11 12:55
54
0
vi命令的使用

删除 ndw或ndW: 删除光标处开始及其后的n-1个字 do: 删至行首 d$: 删至行尾 dd :删除光标所在的列。 ndd: 删除当前行及其后n-1行 x或X: 删除一个字符,x删除光标后的,而X删除光标前的 Ctrl...

2015/01/29 15:37
8
0
mysql load data 批量导入使用

最近在研究使用mycat,其中有使用批量数据导入,简单记录一下使用方式。 查看系统属性 mysql>show variables like '%secure%'; +--------------------------+-----------------------+ | Var...

2018/11/15 15:52
45
0
Linux常用指令

vi: 创建文件 vi test.java vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +...

2018/05/10 19:41
3
0
twemproxy源码解析---特性及启动流程

一、Twemproxy概述及其特性 Twemproxy是一个由twitter开源的memcache与redis的代理,全部由C语言实现。作为一个代理,它的主要特性包括: 1:可以减少到后端cache服务器的连接。 2:在多个c...

2013/06/27 15:08
189
0
Linux串口编程

Linux下串口传输数据,而不需要串口来处理,使用原始模式(Raw Mode)方式来通讯。 编程方法 串口操作需要的头文件: 1 2 3 4 5 6 7 8 #include <stdio.h> /*标准输入输出定义*/ #include <st...

2012/11/20 13:50
383
0
服务器组件LibSSH修补四年的漏洞 防止黑客取得管理权限

大多数Unix与Linux服务器,都以SSH联机,提供管理者远程控管的机制,因此,若是与SSH联机有关的组件出现漏洞,便可能让服务器大开后门,让任何人对其下达指令。其中,用来作为SSH加密传输通讯...

2018/11/02 17:08
4
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部