Skip to content

Commit aec7648

Browse files
author
Ilê Caian
authored
Merge pull request #2 from codevor/chore/webpack-structure
Build: Webpack structure
2 parents c5c0e4c + dcd6fec commit aec7648

File tree

3 files changed

+30
-19
lines changed

3 files changed

+30
-19
lines changed

.npmignore

Lines changed: 0 additions & 6 deletions
This file was deleted.

package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
{
22
"name": "@codevor/js-semaphore",
3-
"version": "0.2.1",
3+
"version": "0.3.0",
44
"description": "🚦Semaphore Implementation for JS",
55
"main": "dist/js-semaphore.js",
66
"unpkg": "dist/js-semaphore.min.js",
7+
"files": [
8+
"dist"
9+
],
710
"scripts": {
811
"clean": "rimraf dist",
912
"dev": "NODE_ENV=dev webpack --progress --colors --watch",
@@ -12,7 +15,7 @@
1215
"test": "jest --coverage --expand",
1316
"test:watch": "jest --watch",
1417
"coveralls": "cat ./coverage/lcov.info | coveralls && rm -rf ./coverage",
15-
"prepublish": "yarn lint && yarn test && yarn clean && yarn build:umd",
18+
"prepublish": "yarn clean && yarn build:umd",
1619
"commit": "git-cz"
1720
},
1821
"keywords": ["Semaphore", "Syncronization", "Mutex"],
@@ -42,7 +45,7 @@
4245
"husky": "^3.0.9",
4346
"jest": "^24.9.0",
4447
"rimraf": "^3.0.0",
45-
"uglifyjs-webpack-plugin": "^2.2.0",
48+
"terser-webpack-plugin": "^2.2.3",
4649
"webpack": "^4.41.1",
4750
"webpack-cli": "^3.3.9"
4851
},

webpack.config.js

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,63 @@
11
const path = require('path');
22
const webpack = require('webpack');
3-
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
3+
const TerserPlugin = require('terser-webpack-plugin');
4+
5+
const {
6+
name,
7+
version,
8+
repository,
9+
author,
10+
license
11+
} = require('./package.json');
412

513
const isProduction = process.env.NODE_ENV === 'production';
6-
const mode = isProduction ? 'production' : 'development';
714

815
const libraryName = 'js-semaphore';
916

17+
const banner = `
18+
${name} v${version}
19+
${repository.url}
20+
Copyright (c) ${author.replace(/ *\<[^)]*\> */g, ' ')}
21+
This source code is licensed under the ${license} license found in the
22+
LICENSE file in the root directory of this source tree.
23+
`;
24+
1025
module.exports = {
11-
mode,
26+
mode: isProduction ? 'production' : 'development',
1227
entry: {
1328
[libraryName]: path.resolve(__dirname, 'src/index.js'),
1429
[`${libraryName}.min`]: path.resolve(__dirname, 'src/index.js')
1530
},
16-
devtool: 'source-map',
1731
output: {
18-
path: path.resolve(__dirname, 'dist'),
1932
filename: '[name].js',
33+
path: path.resolve(__dirname, 'dist'),
2034
library: libraryName,
2135
libraryTarget: 'umd',
22-
umdNamedDefine: true,
2336
globalObject: "typeof self !== 'undefined' ? self : this"
2437
},
2538
module: {
2639
rules: [
2740
{
2841
test: /\.js$/,
42+
exclude: /node_modules/,
2943
use: {
3044
loader: 'babel-loader',
3145
options: {
3246
presets: ['@babel/preset-env']
3347
}
34-
},
35-
exclude: /node_modules/
48+
}
3649
}
3750
]
3851
},
3952
optimization: {
4053
minimize: true,
41-
minimizer: [new UglifyJsPlugin({ include: /\.min\.js$/ })]
54+
minimizer: [new TerserPlugin()]
4255
},
4356
plugins: [
4457
new webpack.DefinePlugin({
4558
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
46-
})
59+
}),
60+
new webpack.BannerPlugin(banner)
4761
],
4862
resolve: {
4963
extensions: ['.json', '.js']

0 commit comments

Comments
 (0)