-
-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cli(init): webpack4 ready #356
Conversation
lib/generators/init-generator.js
Outdated
@@ -339,8 +338,7 @@ module.exports = class InitGenerator extends Generator { | |||
if (regExpForStyles) { | |||
if (this.isProd) { | |||
this.configuration.config.topScope.push(tooltip.cssPlugin()); | |||
// TODO: Replace with regular version once v.4 is out | |||
this.dependencies.push("extract-text-webpack-plugin@next"); | |||
this.dependencies.push("extract-text-webpack-plugin"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll still need to use the pre-release version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yup just pushed smth to reference issue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will work on it tonight :)
Thank you for your pull request! The most important CI builds succeeded, we’ll review the pull request soon. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
v4 does chunksplitting by default yes? Could you add splitChunks
to the configuration anyway? Good for visibility!
Yes it does, do you want to keep it simple like this? @ev1stensberg
|
Go for it |
Keep the commonChunk tip, but explain what |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Nice work. 👍
lib/generators/utils/tooltip.js
Outdated
* It is safe to remove "splitChunks" from the generated configuration | ||
* and was added as an educational example. | ||
* | ||
* Documentation page will be available here soon: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will need to rephrase this a little once #1863 gets merged. You can add a description to the PR so we don't forget.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
webpack/webpack.js.org#1955 was merged, I'll rephrase this when resolving conflict
Sorry for late notice, just realized i mixed up |
Oh, yes! It's |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add more chunks to split if users supply multiple bundles?
Sorry but i didn't quite get that @ev1stensberg |
@ev1stensberg i did put up an update but its not very satisfying experience for simple examples like P.S. Maybe in terms of giving an example of caching group it would make sense to output the default setup where you have default and vendor? See: https://github.com/webpack/webpack.js.org/pull/1863/files#diff-e08b426c523b9305ce571576d5b640d0R158 |
Hi @ev1stensberg |
Implement the one that you think is the best, I'll re-review once done |
27ad714
to
9553557
Compare
@ev1stensberg pls do now |
lib/generators/init-generator.js
Outdated
// add splitChunks options for transparency | ||
this.configuration.config.topScope.push(tooltip.splitChunks()); | ||
this.configuration.config.webpackOptions.optimization = { | ||
splitChunks: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably you chose these numbers based some logic or some reference. In case you did so, could add a comment for that (link to somewhere would be great)? So developers now why :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
they are defaults from the docs, we also add a comment to that link here:
https://github.com/webpack/webpack-cli/pull/356/files#diff-f722437ab3fa8013b0afe4475d557c7fR27
and here is direct link: https://webpack.js.org/plugins/split-chunks-plugin/#optimization-splitchunks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh yeah, I meant to ask if you put these links INTO the code as a comment :)
Sorry for misunderstanding. The link to webpack documentation I guess it's fine. What do you think? Makes sense?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah as a quick ref 👍
Do you think its good otherwise @ematipico |
lib/generators/init-generator.js
Outdated
priority: -10 | ||
}, | ||
}, | ||
default: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This didn't work when trying to build a web app using this PR. Removing default
makes the app run. I think maybe that you can use the object entries from when the user types what the names of their entries should be to add chunkGroups. Say if I answer yes to the first question at the CLI and type that I've got 2 entries, app
and utils
, then you should use that when setting chunk groups in addition to the node_modules for vendor. Makes sense?
@@ -20,7 +20,7 @@ module.exports = (self, answer) => { | |||
.prompt([ | |||
InputValidate( | |||
"multipleEntries", | |||
"Type the names you want for your modules (entry files), separated by comma [example: 'app,vendor']", | |||
"Type the names you want for your modules (entry files), separated by comma [example: app,vendor]", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use this to split groups of chunks.
@@ -17,13 +17,17 @@ module.exports = { | |||
* | |||
*/`; | |||
}, | |||
commonsChunk: _ => { | |||
splitChunks: _ => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good stuff :3
@@ -0,0 +1,53 @@ | |||
"use strict"; | |||
|
|||
const utils = require("../../../utils/ast-utils"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is okay for now, GSOC participants will fix the rest of missing stuff =)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally and it works like a charm! We can merge it
* fix(loader,plugin): fix generators path bug * cli(refactor): improve folder structure (#371) * cli(refactor): improve folder structure * chore(linting): fix linter errors * cli(filepath): use local import instead * cli(migrate): refactor error handling * chore(review): fix review comments * chore(review): fix review comments * chore(review): fix review comments * chore(version): v.2.0.14 * Add break as commit type and listed the type of commit in the documentation (#379) * docs(commits): listed the list of type of commits available * cli(init): mode support to config (#364) * cli(init): mode support to config * cli(bugfix): Allow mode "none" in CLI (#381) * cli(init): use extractMiniCSSPlugin (#363) * cli(init): skip redundant question * cli(init): use mini-css-extract-plugin * Retrieve information for CLI option from webpack schema options file (#392) * cli(refactor): fetch available modes directly from webpack options schema * cli(refactor): Retrieve information from webpackOptionSchema * cli(add): write configuration to yeoman file (#348) * misc(add): variable parity, prettify * cli(add): write config to yeoman-rc * misc(add): improve generator questions * fix(init): output file name for single output (#403) improved output filename * cli(migrate): Update migration question (#402) * cli(init): webpack4 ready (#356) * cli(init): webpack4 ready * cli(init): remove unused variable, still @next on etwp * cli(init): Allow to use default entry in `init` * cli(init): Fix typo in comment * cli(init): Optimization transform and tests * cli(init): Fix non-optimized option for splitChunks * cli(init): Add cachingGroup per entry, don't show name in prod * cli(init): Add cachingGroup's defaults, fix entry * cli(init): Add a link to where the defaults live * cli(init): Remove default caching group definition from example * Add NoEmitOnErrorsPlugin transformation (#399) * ast(migrate): handle no emit on error * ast(migrate): handle module concatenation and named modules * ast(migrate): handle module concatenation and named modules * fix(ast): checks validity of an identifier (#360) added test cases for validate identifier * cli(entry): quotes sanitization (#337) * chore: minor doc fixes * cli(entry): quotes sanitization * tests(entry): add test case for double quotes * tests(entry): update snapshots * misc(utils): entry - variable parity * misc(prop-types): sort * cli(entry): multiple entries quotes sanitization * chore(versioning): v 2.0.15 * chore(versioning): push new package version * cli(fix): remove reference to specific version during migration (#410) * fix: remove reference to specific version during migration * fix: rephrase update message * chore(docs): updated old references to the extract text plugin (#412) * chore(dev): added break to the list of type of commit * init(fix): removed references to extract text plugin * fix(commit): rollback * cli(migration): update UglifyJS transformation (#416) * cli(migration): Update UglifyJS migration file to fit webpack4 configuration * cli(migration): Add cases where require variable does not need to exist * cli(migration): Add transformation for usage of webpack.otimization.UglifyPlugin * cli(tests): Update test snapshots after updating transformation * cli(fix): fix expressionContent being null * cli(refactor): remove plugins array if empty Created function on ast-utils so every other transformation can use this. * tests: add tests for new ast-utils method * fix: fix test names and jsdoc * fix: update maxSize for utils folder * ast(cli): Recursively parse AST (#341) * ast(refactor): wip refactor * ast(refactor): wip refactor * ast(init): refactor * test(refactor): refactor test suite * tests(define): swap args * ast(parsing): refactor stuff * ast(init): refactor * ast(init): refactor tests * chore(tests): remove some unneeded tests * chore(pkg): update package.json * chore(project): clear up project structure * chore(cli): remove unneded files * chore(git): add gitignore to yeoman file * chore(deps): update pkg.json * tests(snapshots): update snapshots * tests(jest): use empty module for snapshots * tests(snap): only test one prop * chore(publishing): add semantic-release (#415) * chore(release): [WIP] add semantic-release * test(ci): wip * test(ci): add node versions * test(ci): remove extra test * tests(ci): revise * tests(ci): only push to npm on master * tests(ci): use matrix on jobs * tests(ci): revise * tests(ci): update * tests(ci): test * tests(ci): test * tests(ci): p * tests(ci): update travis.yml * chore(release): revise travis * misc(yeoman): update yeoman * chore(travis): revise travis * misc(travis): revise travis.yml * chore(travis): remove redundant code * chore(pkg): add keywords * 2.1.1 * 2.1.2 * cli(cmds): revise yargs command (#422) * use yargs.command instead of yargs.option for sub-commands * cli(node): Add node flags to CLI (#377) * feat: add support for node flags * tests: Fix node-flags test * misc: Fix test failing due to not-found webpack-cli * misc: remove comment * misc: refactor removing unecessary args * tests: add more tests to prevent argument collision * cli(cmds): remove strict * fix(node): remove node option for now * chore(lerna): refactor * chore(lerna): refactor * chore(refactor): refactor stuff * chore(package): update pkg.lock * chore(templates): Update issue templates (#432) Adds fancy templates * ast(init): add topScope prop * ast(merge): re-add merge prop * cli(lerna): refactor * chore(lerna): refactor * chore(lerna): update * chore(lint): revise * chore(refactor): refactor * chore(tests): use lerna for tests * chore(travis): don't cache me outside * chore(pkg): remove prefer global * chore(release): v.2.1.3 * chore(package.lock): update pkg.lock * fix(loader,plugin): fix generators path bug * chore(version): v.2.0.14 * Add break as commit type and listed the type of commit in the documentation (#379) * docs(commits): listed the list of type of commits available * cli(bugfix): Allow mode "none" in CLI (#381) * cli(init): use extractMiniCSSPlugin (#363) * cli(init): skip redundant question * cli(init): use mini-css-extract-plugin * Retrieve information for CLI option from webpack schema options file (#392) * cli(refactor): fetch available modes directly from webpack options schema * cli(refactor): Retrieve information from webpackOptionSchema * cli(add): write configuration to yeoman file (#348) * misc(add): variable parity, prettify * cli(add): write config to yeoman-rc * misc(add): improve generator questions * fix(init): output file name for single output (#403) improved output filename * cli(migrate): Update migration question (#402) * fix(ast): checks validity of an identifier (#360) added test cases for validate identifier * chore(versioning): v 2.0.15 * chore(versioning): push new package version * cli(fix): remove reference to specific version during migration (#410) * fix: remove reference to specific version during migration * fix: rephrase update message * chore(docs): updated old references to the extract text plugin (#412) * chore(dev): added break to the list of type of commit * init(fix): removed references to extract text plugin * fix(commit): rollback * misc(yeoman): update yeoman * cli(cmds): revise yargs command (#422) * use yargs.command instead of yargs.option for sub-commands * cli(node): Add node flags to CLI (#377) * feat: add support for node flags * tests: Fix node-flags test * misc: Fix test failing due to not-found webpack-cli * misc: remove comment * misc: refactor removing unecessary args * tests: add more tests to prevent argument collision * cli(cmds): remove strict * fix(node): remove node option for now * chore(templates): Update issue templates (#432) Adds fancy templates * cli(lerna): refactor * chore(lerna): refactor * chore(pkg): remove prefer global * chore(travis): Add encrypted private ssh key * fix(pkg): test auto setup * cli(init): revise installation steps (#441) * cli(init): revise installation steps * chore(formatting): format code * cli(tests): refactor tests * chore(travis): run lockfile cmds on tests (#444) * Update dependencies to enable Greenkeeper 🌴 (#443) chore(greenkeeper): Update dependencies to enable Greenkeeper 🌴 * chore(docs): update readme * chore(travis): add Node.js 10 (#425) * chore(travis): move npm ci to install task (#424) * chore(travis): move npm ci to install task * chore: trigger new build * chore: upgrade Node.js for Appveyor to 8 * chore: remove redundanct npm install command
* chore(monorepo): move to lerna * chore(monorepo): use commands as normal instead of package * fix(revert): packagejson * chore(monorepo): prune files and update eslint rules * chore(monorepo): fix the no-missing-require error * chore(monorepo): fix typo * chore(monorepo): fix typo * chore(monorepo): prune package json * chore(monorepo): merge package lock json * chore(monorepo): updated package.json * chore(monorepo): fix plugin package.json * chore(cli): move to lerna and scoped packages (#434) * fix(loader,plugin): fix generators path bug * cli(refactor): improve folder structure (#371) * cli(refactor): improve folder structure * chore(linting): fix linter errors * cli(filepath): use local import instead * cli(migrate): refactor error handling * chore(review): fix review comments * chore(review): fix review comments * chore(review): fix review comments * chore(version): v.2.0.14 * Add break as commit type and listed the type of commit in the documentation (#379) * docs(commits): listed the list of type of commits available * cli(init): mode support to config (#364) * cli(init): mode support to config * cli(bugfix): Allow mode "none" in CLI (#381) * cli(init): use extractMiniCSSPlugin (#363) * cli(init): skip redundant question * cli(init): use mini-css-extract-plugin * Retrieve information for CLI option from webpack schema options file (#392) * cli(refactor): fetch available modes directly from webpack options schema * cli(refactor): Retrieve information from webpackOptionSchema * cli(add): write configuration to yeoman file (#348) * misc(add): variable parity, prettify * cli(add): write config to yeoman-rc * misc(add): improve generator questions * fix(init): output file name for single output (#403) improved output filename * cli(migrate): Update migration question (#402) * cli(init): webpack4 ready (#356) * cli(init): webpack4 ready * cli(init): remove unused variable, still @next on etwp * cli(init): Allow to use default entry in `init` * cli(init): Fix typo in comment * cli(init): Optimization transform and tests * cli(init): Fix non-optimized option for splitChunks * cli(init): Add cachingGroup per entry, don't show name in prod * cli(init): Add cachingGroup's defaults, fix entry * cli(init): Add a link to where the defaults live * cli(init): Remove default caching group definition from example * Add NoEmitOnErrorsPlugin transformation (#399) * ast(migrate): handle no emit on error * ast(migrate): handle module concatenation and named modules * ast(migrate): handle module concatenation and named modules * fix(ast): checks validity of an identifier (#360) added test cases for validate identifier * cli(entry): quotes sanitization (#337) * chore: minor doc fixes * cli(entry): quotes sanitization * tests(entry): add test case for double quotes * tests(entry): update snapshots * misc(utils): entry - variable parity * misc(prop-types): sort * cli(entry): multiple entries quotes sanitization * chore(versioning): v 2.0.15 * chore(versioning): push new package version * cli(fix): remove reference to specific version during migration (#410) * fix: remove reference to specific version during migration * fix: rephrase update message * chore(docs): updated old references to the extract text plugin (#412) * chore(dev): added break to the list of type of commit * init(fix): removed references to extract text plugin * fix(commit): rollback * cli(migration): update UglifyJS transformation (#416) * cli(migration): Update UglifyJS migration file to fit webpack4 configuration * cli(migration): Add cases where require variable does not need to exist * cli(migration): Add transformation for usage of webpack.otimization.UglifyPlugin * cli(tests): Update test snapshots after updating transformation * cli(fix): fix expressionContent being null * cli(refactor): remove plugins array if empty Created function on ast-utils so every other transformation can use this. * tests: add tests for new ast-utils method * fix: fix test names and jsdoc * fix: update maxSize for utils folder * ast(cli): Recursively parse AST (#341) * ast(refactor): wip refactor * ast(refactor): wip refactor * ast(init): refactor * test(refactor): refactor test suite * tests(define): swap args * ast(parsing): refactor stuff * ast(init): refactor * ast(init): refactor tests * chore(tests): remove some unneeded tests * chore(pkg): update package.json * chore(project): clear up project structure * chore(cli): remove unneded files * chore(git): add gitignore to yeoman file * chore(deps): update pkg.json * tests(snapshots): update snapshots * tests(jest): use empty module for snapshots * tests(snap): only test one prop * chore(publishing): add semantic-release (#415) * chore(release): [WIP] add semantic-release * test(ci): wip * test(ci): add node versions * test(ci): remove extra test * tests(ci): revise * tests(ci): only push to npm on master * tests(ci): use matrix on jobs * tests(ci): revise * tests(ci): update * tests(ci): test * tests(ci): test * tests(ci): p * tests(ci): update travis.yml * chore(release): revise travis * misc(yeoman): update yeoman * chore(travis): revise travis * misc(travis): revise travis.yml * chore(travis): remove redundant code * chore(pkg): add keywords * 2.1.1 * 2.1.2 * cli(cmds): revise yargs command (#422) * use yargs.command instead of yargs.option for sub-commands * cli(node): Add node flags to CLI (#377) * feat: add support for node flags * tests: Fix node-flags test * misc: Fix test failing due to not-found webpack-cli * misc: remove comment * misc: refactor removing unecessary args * tests: add more tests to prevent argument collision * cli(cmds): remove strict * fix(node): remove node option for now * chore(lerna): refactor * chore(lerna): refactor * chore(refactor): refactor stuff * chore(package): update pkg.lock * chore(templates): Update issue templates (#432) Adds fancy templates * ast(init): add topScope prop * ast(merge): re-add merge prop * cli(lerna): refactor * chore(lerna): refactor * chore(lerna): update * chore(lint): revise * chore(refactor): refactor * chore(tests): use lerna for tests * chore(travis): don't cache me outside * chore(pkg): remove prefer global * chore(release): v.2.1.3 * chore(package.lock): update pkg.lock * fix(loader,plugin): fix generators path bug * chore(version): v.2.0.14 * Add break as commit type and listed the type of commit in the documentation (#379) * docs(commits): listed the list of type of commits available * cli(bugfix): Allow mode "none" in CLI (#381) * cli(init): use extractMiniCSSPlugin (#363) * cli(init): skip redundant question * cli(init): use mini-css-extract-plugin * Retrieve information for CLI option from webpack schema options file (#392) * cli(refactor): fetch available modes directly from webpack options schema * cli(refactor): Retrieve information from webpackOptionSchema * cli(add): write configuration to yeoman file (#348) * misc(add): variable parity, prettify * cli(add): write config to yeoman-rc * misc(add): improve generator questions * fix(init): output file name for single output (#403) improved output filename * cli(migrate): Update migration question (#402) * fix(ast): checks validity of an identifier (#360) added test cases for validate identifier * chore(versioning): v 2.0.15 * chore(versioning): push new package version * cli(fix): remove reference to specific version during migration (#410) * fix: remove reference to specific version during migration * fix: rephrase update message * chore(docs): updated old references to the extract text plugin (#412) * chore(dev): added break to the list of type of commit * init(fix): removed references to extract text plugin * fix(commit): rollback * misc(yeoman): update yeoman * cli(cmds): revise yargs command (#422) * use yargs.command instead of yargs.option for sub-commands * cli(node): Add node flags to CLI (#377) * feat: add support for node flags * tests: Fix node-flags test * misc: Fix test failing due to not-found webpack-cli * misc: remove comment * misc: refactor removing unecessary args * tests: add more tests to prevent argument collision * cli(cmds): remove strict * fix(node): remove node option for now * chore(templates): Update issue templates (#432) Adds fancy templates * cli(lerna): refactor * chore(lerna): refactor * chore(pkg): remove prefer global * chore(travis): Add encrypted private ssh key * fix(pkg): test auto setup * cli(init): revise installation steps (#441) * cli(init): revise installation steps * chore(formatting): format code * cli(tests): refactor tests * chore(travis): run lockfile cmds on tests (#444) * Update dependencies to enable Greenkeeper 🌴 (#443) chore(greenkeeper): Update dependencies to enable Greenkeeper 🌴 * chore(docs): update readme * chore(travis): add Node.js 10 (#425) * chore(travis): move npm ci to install task (#424) * chore(travis): move npm ci to install task * chore: trigger new build * chore: upgrade Node.js for Appveyor to 8 * chore: remove redundanct npm install command * chore(linting): resolve linter errors * chore(linting): fix linting errors * chore(linting): resolve linting * chore(linting): resolve linting * chore(scaffold): move addons to scaffold * chore(scaffold): fix linting errors * cli(prompt): initial comment for prompt file * cli(prompt): wip * fix(monorepo): fix lint errors * fix(monorepo): fix cross spawn versions * fix(monorepo): update lock files * fix(monorepo): fix versions in pacakges * chore(rebase): refactor stuff * cli(pkgs): re-add entries * chore(v): revise pkg * v0.0.1 * chore(v): revise some deps * v0.0.2 * v0.0.3 * chore(v): back to v1 * v0.0.2 * v0.0.3 * v0.0.4 * chore(deps): update deps * chore(prompt): revise prompt cmd * v0.0.5 * cli(path): resolve better * v0.0.6 * chore(v.6): update init * chore(pkg): v.6 on next * chore(monorepo): add bootstrap to run chore(monorepo): add bootstrap to ci * chore(monorepo): fix appveyor build * chore(monorepo): fix appveyor build * chore(monorepo): add eslint-plugin-prettier * chore(monorepo): fix appveyor build chore(monorepo): fix appveyor build chore(monorepo): add eslint-plugin-prettier chore(monorepo): use nohoist * chore(monorepo): fix versions and use clean bootstrap * chore(monorepo): add rimraf globally chore(monorepo): revert back * chore(monorepo): fix windows build * cli(color): don't use color on non-tty (#452) * Added yarn lock file to gitignore (#455) * chore(next): dev version bump * chore(monorepo): fix windows build * cli(symlinks): Fix paths (#453) * cli(symlinks): fix symlinks * chore(linting): resolve linting errors * chore(rebase): remove old file * cli(init): Better defaults (#451) * cli(init): set default generator name * cli(init): better defaults * chore(rebase): remove old commit * cli(init): fix broken ast and merge scaffolds * chore(docs): better defaults * chore(lint): fix linting errors * chore(deps): remove path from dep installation * chore(resolve): resolve conflicts * fix(vulnerabilities): vulnerabilities patch for v3 (#460) * chore(dependencies): fix vulnerabilities * misc(scripts): update clean:all script * chore(dependencies): fix vulnerabilities * tests(parser): fix recursive-tests signature (#470) * chore(deps): add lerna * tests(coverage): fix coverage (#473) * test(coverage): fix coverage * test(binTestCases): run bintestcases on upper-repo * tests(travis): add node 10 * tests(cov): use regular nyc on tests * chore(lockfile): update pkglock * chore(semantic): configure plugins (#475) * fix(cli): show help flag when defaults fail (#466) * fixed test cases * remove unwanted console * fix(254) - addressed PR comments * fix(254) - added requested changes at right place * fix(254) - exit after error exit webpack if defaults are not found fix test cases for no options * fix: require chalk * refactor - addressed PR comments * refactor - addressed PR comments * refactor : remove unwanted keywords * chore(review): format * tests(no-options): refactor tests * ast(parser): add (#456) * ast(parser): add, update, remove - literal node support * ast(parser): add command * ast(util): update property, early exit * tests(add): resursive add ast * tests(add): update recursive parser snaps * misc(conflicts): resolve conflicts * tests(parser): update tests, inputs * chore(review): fix some things * ast(utils): add ast-path safe traverse and type support * ast(utils): merge update property with add property * tests(ast): add tests for safe traversals * misc(fixes): review comments * tests(ast): add tests for addProperty * misc(fixes): review comments * misc(fixes): review comments * misc(fixes): review comments * cli(add): re-add add command
What kind of change does this PR introduce?
Make
init
command generate webpack4 ready config fileDid you add tests for your changes?
no
If relevant, did you update the documentation?
no
Summary
Fixes #350
Missing
mode
also popped up in this discussion: #315Also related: #321
init
's outputoptimization
toinit
's outputoptimization
transformDoes this PR introduce a breaking change?
Other information