Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

kktjs/ncc

Open more actions menu

Repository files navigation

@kkt/ncc

npm version Downloads CI

Simple CLI for compiling a Node.js module into a single file, together with all its dependencies, gcc-style. A tool created based on kkt & create-react-app, @kkt/ncc similar to @vercel/ncc

Usage

Installation

npm i -g @kkt/ncc

Usage

$ ncc <cmd> [input-file] [opts]
# input-file default value: src/index.ts

Eg:

$ ncc build input.js -o dist

Outputs the Node.js compact build of input.js into dist/input.js.

Commands

Usage: ncc [build|watch] [input-file] [--help|h]

Displays help information.

Options:

  --version, -v         Show version number
  --help, -h            Displays help information.
  -o, --out [dir]       Output directory for build (defaults to dist).
  -m, --minify          Minify output.
  -t, --target          Instructs webpack to target a specific environment (defaults to node14).
  -l, --library         Output a library exposing the exports of your entry point. The parameter "--target=web" works.
  -s, --source-map      Generate source map.
  -e, --external [mod]  Skip bundling 'mod'. Can be used many times.
  --filename            output file name.

Example:

  $ ncc build
  $ ncc build --out ./dist
  $ ncc build --minify
  $ ncc watch --minify
  $ ncc build src/app.ts
  $ ncc build --target web --library MyLibrary
  $ ncc build --source-map

Configuration File

Supports .kktrc.js and .kktrc.ts. Configuration Example:

import webpack, { Configuration } from 'webpack';
import { LoaderConfOptions } from 'kkt';
import lessModules from '@kkt/less-modules';

export default (conf: Configuration, env: 'development' | 'production', options: LoaderConfOptions) => {
  conf = lessModules(conf, env, options);
  if (options.bundle) {
    conf.output!.library = '@uiw/codemirror';
    conf.output!.filename = `codemirror${options.minify ? '.min.js' : '.js'}`;
    conf.externals = {
      '@codemirror/basic-setup': {
        root: ['CM', '@codemirror/basic-setup'],
        commonjs: '@codemirror/basic-setup',
        commonjs2: '@codemirror/basic-setup',
      },
      oneDark: {
        root: ['CM', '@codemirror/theme-one-dark', 'oneDark'],
      },
      StateEffect: {
        root: ['CM', '@codemirror/state', 'StateEffect'],
      },
      EditorState: {
        root: ['CM', '@codemirror/basic-setup', 'EditorState'],
      },
      react: {
        root: 'React',
        commonjs2: 'react',
        commonjs: 'react',
        amd: 'react',
      },
      'react-dom': {
        root: 'ReactDOM',
        commonjs2: 'react-dom',
        commonjs: 'react-dom',
        amd: 'react-dom',
      },
    };
  } else {
    // ......
  }
  return conf;
};

Example

Development

Runs the project in development mode.

npm install
npm run build

npm run watch

Contributors

As always, thanks to our amazing contributors!

Made with github-action-contributors.

License

Licensed under the MIT License

About

Simple CLI for compiling a Node.js module into a single file, together with all its dependencies, gcc-style.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.