Skip to content

Instantly share code, notes, and snippets.

@evenstensberg
Created May 29, 2019 09:10
Show Gist options
  • Save evenstensberg/87978d3e21bcc325f5fcef67f372fd68 to your computer and use it in GitHub Desktop.
Save evenstensberg/87978d3e21bcc325f5fcef67f372fd68 to your computer and use it in GitHub Desktop.
Run from root in webpack-cli, this is the behaviour of merge prop atm
const yoConfig = {
"webpack-cli": {
"configuration": {
"config": {
"merge": "okay",
"topScope": [
"const webpack = require('webpack')",
"const path = require('path')",
"\n",
"/*\n * SplitChunksPlugin is enabled by default and replaced\n * deprecated CommonsChunkPlugin. It automatically identifies modules which\n * should be splitted of chunk by heuristics using module duplication count and\n * module category (i. e. node_modules). And splits the chunks…\n *\n * It is safe to remove \"splitChunks\" from the generated configuration\n * and was added as an educational example.\n *\n * https://webpack.js.org/plugins/split-chunks-plugin/\n *\n */",
"/*\n * We've enabled TerserPlugin for you! This minifies your app\n * in order to load faster and run less javascript.\n *\n * https://github.com/webpack-contrib/terser-webpack-plugin\n *\n */",
"const TerserPlugin = require('terser-webpack-plugin');",
"\n"
],
"webpackOptions": {
"module": {
"rules": [
{
"include": [
"path.resolve(__dirname, 'src')"
],
"loader": "'babel-loader'",
"options": {
"plugins": [
"'syntax-dynamic-import'"
],
"presets": [
[
"'@babel/preset-env'",
{
"'modules'": false
}
]
]
},
"test": "/\\.js$/"
}
]
},
"output": {
"chunkFilename": "'[name].[chunkhash].js'",
"filename": "'[name].[chunkhash].js'"
},
"mode": "'development'",
"plugins": [
"new TerserPlugin()"
],
"optimization": {
"splitChunks": {
"cacheGroups": {
"vendors": {
"priority": -10,
"test": "/[\\\\/]node_modules[\\\\/]/"
}
},
"chunks": "'async'",
"minChunks": 1,
"minSize": 30000,
"name": true
}
}
},
"configName": "config"
}
}
}
};
const runTransform = require('./packages/utils/scaffold').default;
const conf = {
configFile: null,
configPath: null,
config: yoConfig['webpack-cli'].configuration.config
}
runTransform(conf, "init")
console.log(require('fs').readFileSync("./webpack.config.js", 'utf8'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment