Skip to content

How to Build

To run CodeCoupler Webpack Commands you can use the script shortcuts defined in the package.json. If you did not initialized your project with npm init cc-webpack you can use the provided binary cc-webpack.

One short note to the binary and the option --mode: If not set, the default value is development and not production like in Webpack.

If any of the build commands fail cc-webpack will return the exit code 1 1.

Production Build

npm run build (shortcut), npx cc-webpack --mode production

This command will build the final JavaScript library, the Stylesheet File and copy and process the files from the static folder. All minified, mangled and with source maps in separate files.

You can setup some parameters in the webpack.cc-config.js for the production build:

npm run build:watch (shortcut), npx cc-webpack --watch --mode production

This command will stay after the production build in the watch mode and will recompile whenever a source file is changed.

Development Environment

The following commands will build the library in development mode. Some features will be disabled for better compiling perfomance and easier debuging:

  • JavaScript, CSS and HTML will not minified or mangled.
  • SourceMaps will be inlined.
  • Only one simple favicon will be created.

npm start (shortcut), npx cc-webpack --devserver --mode development

This will build the library, start the webpack development server and the browser pointing to the server. Everytime you modify your code the page will be automatically reloaded.

You will not see the building results in the dist folder, because the the server keeps bundle files in memory and serves them as if they were real files mounted at the server's root path.

Within this environment you can develop your library.

npm run watch (shortcut), npx cc-webpack --watch --mode development

This will build the library and save the results in the dist folder. Everytime you modify your code the compilation will start automatically again.

You can use this environment if you have to use another server then the webpack development server.

npm run build:dev (shortcut), npx cc-webpack --mode development

This will build the library and save the results in the dist folder. Nothing more.

CDN Versions

You can build your code to include CDN links to your external modules instead of copying to the dist folder with these commands:

npm run start:cdn (shortcut), npx cc-webpack --devserver --externals-cdn --mode development

Development Server running with CDN build.

npm run watch:cdn (shortcut), npx cc-webpack --watch --externals-cdn --mode development

Watching mode with CDN build.

npm run build:dev:cdn (shortcut), npx cc-webpack --externals-cdn --mode development

Just build a CDN version in development mode.

npm run build:cdn (shortcut), npx cc-webpack --externals-cdn --mode production

Final production CDN build.

npm run build:watch:cdn (shortcut), npx cc-webpack --watch --externals-cdn --mode production

Watching mode with final production CDN build.

Linting Tools

npm run lint (shortcut), tsc --noEmit && eslint ./src/**/*.{js,ts} --quiet && npx stylelint ./src/**/*.css

This command will first run the TypeScript compiler and report any TypeScript compiler errors. If there are no TypeScript errors, it will then run ESLint through all the .js, .vue and .ts files in the src folder. If there are no ESLint errors, it will then run stylelint through all the .css files in the src folder. Any errors will be printed out in the command line.

npm run lint:fix (shortcut), tsc --noEmit && eslint ./src/**/*.{js,ts} --quiet --fix && npx stylelint ./src/**/*.css --fix

This command is the same as npm run dev:lint. But any ESLint and stylelint errors that can be automatically fixed will be fixed with this command, but any other errors will be printed out in the command line. Any TypeScript or ESLint error will stop further execution.

npm run lint:light or npm run lint:light:fix (shortcut), eslint ./src/**/*.{js,ts} --quiet [--fix] && npx stylelint ./src/**/*.css [--fix]

These both commands works exactly like npm run lint and npm run lint:fix but without the TypeScript compiler. Usefull for projects without TypeScript files because the TypeScript complier throws an error if no TypeScript files was found.

npm run tslint or npm run tslint:fix (shortcut), tsc --noEmit && eslint ./src/**/*.ts --quiet [--fix]

These both commands run only the TypeScript compiler and report any TypeScript compiler errors. If there are no TypeScript errors, it will then run ESLint through all the .ts files in the src folder.

npm run jslint or npm run jslint:fix (shortcut), eslint ./src/**/*.js --quiet [--fix]

These both commands run only ESLint through all the .js files in the src folder.

npm run vuelint or npm run vuelint:fix (shortcut), eslint ./src/**/*.vue --quiet [--fix]

These both commands run only ESLint through all the .js files in the src folder.

npm run csslint or npm run csslint:fix (shortcut), npx stylelint ./src/**/*.css [--fix]

These both commands run only stylelint through all the .css files in the src folder.

Debuging cc-webpack

npm run test:cc-webpack or npm run test:cc-webpack:dev (shortcut), npx cc-webpack --test [raw] [--mode production]

This will print the Webpack configuration generated by cc-webpack and some other details.

If you specify the keyword raw no ANSI escape codes for colorizing will be used in the output.

General Output Options

--quiet

Setting this option no progress bar and no result will be shown. Error will still shown. 2

--cwd

Set current working directory in which the project resides which should be compiled. Useful to start cc-webpack from another place. 2

--devtool <devtool>

Override the webpack devtool which generates the source map (See: https://webpack.js.org/configuration/devtool/). 3

--stats <filename>

Generate a stats json file to analyze the bundle (See https://webpack.js.org/api/stats/). Do not work in combination with --watch. 3


  1. The exit code 1 will be returned from version 3 

  2. The options --quiet and --cwd exists from version 3 

  3. The options --devtool and --stats exists from version 3.7