GithubHelp home page GithubHelp logo

kktjs / ncc Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 117 KB

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

Home Page: https://kktjs.github.io/ncc

License: MIT License

Shell 0.53% TypeScript 99.47%
kkt kkt-cli ncc

ncc's Introduction

@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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.