terser-config-atomic v1.0.0
terser-config-atomic
The Terser configuration used in atom-community.
Installation
npm install --save-dev terser-config-atomicEither add the following to your .npmrc if using pnpm to hoist the Terser bundled with the config
public-hoist-pattern[]=*Or install terser yourself in your devDependencies.
If using npm, the terser dependency is hoisted automatically.
If you use Parcel or rullup-plugin-atomic, Terser is already included.
Usage
Create a .terserrc.js with the following content
.terserrc.js
module.exports = require("terser-config-atomic")The config is adapted based on NODE_ENV, so make sure to run your scripts with the correct NODE_ENV:
- test:
cross-env NODE_ENV=test your_test_script - development:
cross-env NODE_ENV=development your_dev_script - production:
cross-env NODE_ENV=production your_prod_script
Note: cross-env is an npm package that you need to install.
Options
You can import the builder function to create a custom config:
import { buildTerserOptions } from "terser-config-atomic/dist/builder.js"
module.exports = buildTerserOptions(process.env.NODE_ENV, process.env.BABEL_ENV)The builder function:
/**
* Get the terser options for the given environment.
*
* @param NODE_ENV - The Node environment (defaults to "production").
* @param BABEL_ENV - The Babel environment (defaults to NODE_ENV).
* @param unsafeCompress - Whether to use unsafe compression options (defaults to false).
*/
export function buildTerserOptions(
NODE_ENV: string = "production",
BABEL_ENV: string | undefined = undefined,
unsafeCompress: boolean = false,
)Modifying the config
To change the config use the following pattern:
.terserrc.js
const TerserAtomic = require("terser-config-atomic")
module.exports = {
...TerserAtomic,
// your config here
}To change the deep properties such as compress, use the following pattern as an example:
const TerserAtomic = require("terser-config-atomic")
module.exports = {
...TerserAtomic,
compress: {
...TerserAtomic.compress,
ecma: 2020,
},
}