Migrates to Webpack 4

This commit is contained in:
Samuel Oloruntoba 2018-11-11 17:17:25 +01:00 committed by Zeno Rocha
parent 3382ea3d14
commit 5ef3f1a817
6 changed files with 112 additions and 859 deletions

View File

@ -1,4 +1,3 @@
{
"presets": ["es2015"],
"plugins": ["transform-es2015-modules-umd"]
"presets": ["env"]
}

2
.gitignore vendored
View File

@ -2,3 +2,5 @@ lib
npm-debug.log
bower_components
node_modules
yarn-error.log
yarn.lock

898
dist/clipboard.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -17,11 +17,10 @@
"tiny-emitter": "^2.0.0"
},
"devDependencies": {
"babel-cli": "^6.5.1",
"babel-core": "^6.5.2",
"babel-loader": "^6.2.10",
"babel-plugin-transform-es2015-modules-umd": "^6.5.0",
"babel-preset-es2015": "^6.5.0",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.4",
"babel-preset-env": "^1.6.1",
"chai": "^3.4.1",
"cross-env": "^3.1.4",
"karma": "^1.3.0",
@ -33,14 +32,22 @@
"mocha": "^3.1.2",
"phantomjs-prebuilt": "^2.1.4",
"sinon": "^1.17.2",
"webpack": "^2.2.1"
"uglifyjs-webpack-plugin": "^1.2.4",
"webpack": "^4.5.0",
"webpack-bundle-analyzer": "^2.11.1",
"webpack-cli": "^2.0.14"
},
"scripts": {
"build": "npm run build-debug && npm run build-min",
"build-debug": "webpack",
"build-min": "cross-env NODE_ENV=production webpack --optimize-minimize",
"build-debug": "webpack --mode=development",
"build-analyze": "cross-env ANALYZE_BUILD=true npm run prepublish",
"build-min": "cross-env NODE_ENV=production webpack --mode=production",
"build-watch": "webpack --watch",
"test": "karma start --single-run",
"prepublish": "npm run build"
}
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}

View File

@ -1,6 +1,8 @@
const pkg = require('./package.json');
const path = require('path');
const webpack = require('webpack');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const production = process.env.NODE_ENV === 'production' || false;
@ -22,20 +24,27 @@ module.exports = {
{test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'}
]
},
optimization: {
minimizer: [
new UglifyJSPlugin({
parallel: require('os').cpus().length,
uglifyOptions: {
ie8: false,
keep_fnames: false,
output: {
beautify: false,
comments: false
}
}
})
]
},
plugins: production ? [
new webpack.optimize.UglifyJsPlugin({
beautify: false,
mangle: {
screw_ie8: true,
keep_fnames: true
},
compress: {
screw_ie8: true
},
comments: false
}),
new webpack.BannerPlugin({banner})
new webpack.BannerPlugin({ banner }),
new BundleAnalyzerPlugin({
analyzerMode: process.env.ANALYZE_BUILD ? 'server' : 'disabled'
})
] : [
new webpack.BannerPlugin({banner})
new webpack.BannerPlugin({ banner })
]
};