Contents
Webpack 4.7 is available in experimental.
TODO
- Run tests (currently disabled because jest is not packaged).
- Package or embed @webassemblyjs/* to update to newer webpack releases.
Major changes
Now entry, output options on command line are mandatory and we get a warning if mode option is not specified. Check node-d3-request (commit)
production and development are new modes and each has its on default options. production mode does minify by default.
entry option in command line must have ./ prefix to directory path (--entry src/index.js will not work, but --entry ./src/index.js will work). See node-turbolinks commit.
node_modules/.cache should be removed in clean target.
node-grunt-webpack should be >= 3.1.
webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead. Check this patch or this commit (where a single config file creates multiple output files and only one of them we need minimized).
Steps to build with webpack 4
clone repo from salsa (gbp clone --pristine-tar)
Update debian/control and change webpack dependency to >= 4~ to force building with webpack 4 (without this, package in unstable will be used).
Build on experimental. See sbuild#Enabling_experimental
Involved packages
Command used to find the list: reverse-depends -b webpack
Already compatible with webpack 4
- node-handlebars (tested rebuild)
- node-mocha (false positive, switched to rollup)
- node-js-beautify (tested rebuild)
node-yarnpkg 933498
Ready in unstable
- node-rollup-plugin-alias (switched to rollup)
Ready in experimental
- node-d3-scale
- node-d3-request
- node-turbolinks
- node-vue-resource
- node-markdown-it-html5-embed
- node-timeago.js
- node-axios
- node-url-parse
- node-fuzzaldrin-plus
- node-es6-promise
- node-jschardet
- node-source-map
- node-chai (minor: minify only .min.js)
Ready in git
- node-prop-types
Ready with patch in BTS
node-matrix-js-sdk 933662
Need fix - solved in other packages
In progress - need help
- node-dagre-layout
webpack --progress --colors /usr/share/nodejs/webpack/node_modules/webpack-cli/bin/cli.js:93 throw err; ^ Error: Options {"loose":true} passed to /usr/lib/nodejs/babel-preset-env/lib/index.js which does not accept options. (While processing preset: "/usr/lib/nodejs/babel-preset-env/lib/index.js") (While processing preset: "/usr/lib/nodejs/babel-preset-env/lib/index.js") at /usr/lib/nodejs/babel-core/lib/transformation/file/options/option-manager.js:314:17
node-trust-json-document, node-react-audio-player (minor: use resolve, instead of cp for system modules) 933626, 933633
webpack -d --output-filename json-document.js Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - configuration.module has an unknown property 'loaders'. These properties are valid: object { exprContextCritical?, exprContextRecursive?, exprContextRegExp?, exprContextRequest?, noParse?, rules?, defaultRules?, unknownContextCritical?, unknownContextRecursive?, unknownContextRegExp?, unknownContextRequest?, unsafeCache?, wrappedContextCritical?, wrappedContextRecursive?, wrappedContextRegExp?, strictExportPresence?, strictThisContextOnImports? } -> Options affecting the normal modules (`NormalModuleFactory`).
In progress
- node-d3-queue
Supported in new upstream release
rainloop 933481
Not checked
- jekyll
- leaflet-image
Packages that needs to move to unstable with webpack 4
- node-watchpack
- node-chokidar
- node-ajv (check)
- node-ajv-keywords (check)
- node-uglifyjs-webpack-plugin
- node-schema-utils