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
npm i -g @kkt/ncc
$ ncc <cmd> [input-file] [opts]
# input-file default value: src/index.ts
$ ncc build input.js -o dist
Outputs the Node.js
compact build of input.js
into dist/input.js
.
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
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;
};
Runs the project in development mode.
npm install
npm run build
npm run watch
As always, thanks to our amazing contributors!
Made with github-action-contributors.
Licensed under the MIT License