Skip to content

Commit 96ac1cd

Browse files
committed
fix: Create commonjs, es and umd builds
1 parent eb29835 commit 96ac1cd

3 files changed

Lines changed: 80 additions & 15 deletions

File tree

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ before_install:
1111
- npm i -g npm@^2.0.0
1212
before_script:
1313
- npm prune
14+
script:
15+
- npm run build
1416
after_success:
1517
- npm run semantic-release
1618
branches:

package.json

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
{
22
"name": "react-mdl-selectfield",
3-
"description": "React Material Design Lite Selectfield Component",
4-
"main": "components/index.js",
3+
"description": "React MDL SelectField Component",
4+
"main": "lib/index.js",
5+
"module": "es/index.js",
6+
"jsnext:main": "es/index.js",
57
"scripts": {
68
"start": "npm run storybook",
79
"storybook": "cross-env NODE_ENV=development start-storybook -p 9002",
8-
"dev": "cross-env NODE_ENV=development node ./server.js",
9-
"lint": "eslint components/** test/**",
10-
"build-examples": "cross-env NODE_ENV=production webpack --progress --verbose --colors",
10+
"build:commonjs": "cross-env BABEL_ENV=commonjs babel src --out-dir lib",
11+
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es",
12+
"build:umd": "cross-env BABEL_ENV=commonjs NODE_ENV=development webpack --progress --verbose --colors",
13+
"build:umd:min": "cross-env BABEL_ENV=commonjs NODE_ENV=production webpack --progress --verbose --colors",
14+
"build:examples": "cross-env BABEL_ENV=commonjs babel-node examples/buildAll.js",
15+
"build": "npm run build:commonjs && npm run build:es && npm run build:umd && npm run build:umd:min",
16+
"lint": "eslint src/** test/**",
1117
"prepublish": "npm run lint",
1218
"semantic-release": "semantic-release pre && npm publish && semantic-release post",
1319
"test": "mocha --require test/config/setup 'test/*.js'",
@@ -34,10 +40,7 @@
3440
"bugs": {
3541
"url": "https://github.com/HriBB/react-mdl-selectfield/issues"
3642
},
37-
"homepage": "https://github.com/HriBB/react-mdl-selectfield",
38-
"peerDependencies": {
39-
"react-mdl": "^1.6.1"
40-
},
43+
"homepage": "https://hribb.github.io/react-mdl-selectfield/",
4144
"devDependencies": {
4245
"@kadira/storybook": "^1.41.0",
4346
"autoprefixer": "^6.4.0",
@@ -80,8 +83,7 @@
8083
"sinon": "^1.17.4",
8184
"style-loader": "^0.13.0",
8285
"webpack": "^1.13.1",
83-
"webpack-dev-server": "^1.14.1",
84-
"webpack-hot-middleware": "^2.12.2"
86+
"webpack-dev-server": "^1.14.1"
8587
},
8688
"dependencies": {
8789
"@kadira/storybook-deployer": "^1.0.0",

webpack.config.js

Lines changed: 65 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,66 @@
1-
if (process.env.NODE_ENV === 'production') {
2-
module.exports = require('./webpack.config.prod')
3-
} else {
4-
module.exports = require('./webpack.config.dev')
1+
var path = require('path');
2+
var webpack = require('webpack');
3+
var autoprefixer = require('autoprefixer');
4+
var ExtractTextPlugin = require('extract-text-webpack-plugin');
5+
6+
var env = process.env.NODE_ENV;
7+
var suffix = env === 'production' ? '.min' : '';
8+
var filename = `react-mdl-selectfield${suffix}`;
9+
10+
var config = {
11+
entry: [
12+
path.resolve(__dirname, 'src', 'index')
13+
],
14+
output: {
15+
path: path.resolve(__dirname, 'dist'),
16+
filename: `${filename}.js`,
17+
library: filename,
18+
libraryTarget: 'umd'
19+
},
20+
resolve: {
21+
extensions: ['', '.js']
22+
},
23+
module: {
24+
preLoaders: [{
25+
test: /\.js$/,
26+
loader: 'eslint',
27+
exclude: /node_modules/
28+
}],
29+
loaders: [{
30+
test: /\.js$/,
31+
loader: 'babel',
32+
exclude: /node_modules/
33+
},{
34+
test: /\.(scss|css)$/,
35+
loader: ExtractTextPlugin.extract('css!postcss!sass'),
36+
}]
37+
},
38+
postcss: [ autoprefixer({ browsers: ['last 2 versions'] }) ],
39+
plugins: [
40+
new webpack.optimize.OccurenceOrderPlugin(),
41+
new webpack.DefinePlugin({
42+
'process.env.NODE_ENV': JSON.stringify(env)
43+
}),
44+
new ExtractTextPlugin(`${filename}.css`)
45+
],
46+
};
47+
48+
if (env === 'production') {
49+
config.plugins.push(
50+
new webpack.optimize.UglifyJsPlugin({
51+
compress: {
52+
screw_ie8: true,
53+
warnings: false
54+
},
55+
mangle: {
56+
screw_ie8: true
57+
},
58+
output: {
59+
comments: false,
60+
screw_ie8: true
61+
}
62+
})
63+
)
564
}
65+
66+
module.exports = config

0 commit comments

Comments
 (0)