Skip to content

Commit df306dc

Browse files
authored
Merge pull request #55 from Coding/hackape/webpack2-migration
⬆️ upgrade to webpack 2
2 parents 8defe85 + 0d3a958 commit df306dc

File tree

7 files changed

+2037
-2081
lines changed

7 files changed

+2037
-2081
lines changed

.babelrc

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
{
22
"presets": [
33
"react",
4-
"es2015",
4+
"env",
55
"stage-0"
66
],
77
"plugins": [
8-
"transform-runtime",
98
"transform-decorators-legacy"
109
],
1110
"env": {
@@ -15,3 +14,50 @@
1514
}
1615
}
1716

17+
/* Noted at 2017-02-23
18+
* most plugins at semver "^6.22.0"
19+
* below are plugins that're included in preset-env and preset-stage-0
20+
21+
* stage-0 to stage-3:
22+
bable-plugin-syntax-trailing-function-commas
23+
bable-plugin-transform-async-generator-functions
24+
bable-plugin-transform-async-to-generator
25+
bable-plugin-transform-exponentiation-operator
26+
bable-plugin-transform-object-rest-spread
27+
bable-plugin-transform-class-properties
28+
bable-plugin-transform-decorators
29+
bable-plugin-syntax-dynamic-import
30+
bable-plugin-transform-class-constructor-call
31+
bable-plugin-transform-export-extensions
32+
bable-plugin-transform-do-expressions
33+
bable-plugin-transform-function-bind
34+
35+
* preset-es2015, es2016, es2017:
36+
bable-plugin-syntax-trailing-function-commas
37+
bable-plugin-transform-async-to-generator
38+
bable-plugin-transform-exponentiation-operator
39+
bable-plugin-check-es2015-constants
40+
bable-plugin-transform-es2015-arrow-functions
41+
bable-plugin-transform-es2015-block-scoped-functions
42+
bable-plugin-transform-es2015-block-scoping
43+
bable-plugin-transform-es2015-classes
44+
bable-plugin-transform-es2015-computed-properties
45+
bable-plugin-transform-es2015-destructuring
46+
bable-plugin-transform-es2015-duplicate-keys
47+
bable-plugin-transform-es2015-for-of
48+
bable-plugin-transform-es2015-function-name
49+
bable-plugin-transform-es2015-literals
50+
bable-plugin-transform-es2015-modules-amd
51+
bable-plugin-transform-es2015-modules-commonjs
52+
bable-plugin-transform-es2015-modules-systemjs
53+
bable-plugin-transform-es2015-modules-umd
54+
bable-plugin-transform-es2015-object-super
55+
bable-plugin-transform-es2015-parameters
56+
bable-plugin-transform-es2015-shorthand-properties
57+
bable-plugin-transform-es2015-spread
58+
bable-plugin-transform-es2015-sticky-regex
59+
bable-plugin-transform-es2015-template-literals
60+
bable-plugin-transform-es2015-typeof-symbol
61+
bable-plugin-transform-es2015-unicode-regex
62+
bable-plugin-transform-regenerator
63+
*/

package.json

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
"description": "Coding WebIDE",
55
"main": "index.js",
66
"private": true,
7-
"repository": {
8-
"type": "git",
9-
"url": "https://github.com/Coding/WebIDE-Frontend.git"
10-
},
7+
"repository": "https://github.com/Coding/WebIDE-Frontend.git",
118
"bugs": {
129
"url": "https://github.com/Coding/WebIDE-Frontend/issues"
1310
},
@@ -25,43 +22,34 @@
2522
"coding",
2623
"webide"
2724
],
28-
"author": {
29-
"name": "hackape",
30-
"email": "vince@hackape.com"
31-
},
25+
"author": "hackape <vince@hackape.com>",
3226
"license": "BSD-3-Clause",
3327
"devDependencies": {
34-
"babel-core": "^6.13.2",
35-
"babel-eslint": "^7.1.1",
36-
"babel-loader": "^6.2.4",
28+
"babel-core": "^6.23.1",
29+
"babel-loader": "^6.3.2",
3730
"babel-plugin-transform-decorators-legacy": "^1.3.4",
38-
"babel-plugin-transform-runtime": "^6.12.0",
39-
"babel-polyfill": "^6.13.0",
40-
"babel-preset-es2015": "^6.13.2",
41-
"babel-preset-react": "^6.11.1",
42-
"babel-preset-react-hmre": "^1.1.1",
43-
"babel-preset-stage-0": "^6.5.0",
44-
"babel-runtime": "^6.9.0",
45-
"copy-webpack-plugin": "^3.0.1",
46-
"cross-env": "^2.0.1",
47-
"css-loader": "^0.23.1",
31+
"babel-polyfill": "^6.23.0",
32+
"babel-preset-env": "^1.1.8",
33+
"babel-preset-react": "^6.23.0",
34+
"babel-preset-stage-0": "^6.22.0",
35+
"copy-webpack-plugin": "^4.0.1",
36+
"cross-env": "^3.1.4",
37+
"css-loader": "^0.26.1",
4838
"eslint": "^3.5.0",
4939
"eslint-config-airbnb": "^9.0.1",
5040
"eslint-import-resolver-webpack": "^0.3.0",
5141
"eslint-plugin-import": "^1.15.0",
5242
"eslint-plugin-jsx-a11y": "^1.3.0",
5343
"eslint-plugin-react": "^5.0.1",
54-
"file-loader": "^0.9.0",
55-
"html-webpack-plugin": "^2.22.0",
56-
"regexp-replace-loader": "^0.0.1",
57-
"standard": "*",
44+
"file-loader": "^0.10.0",
45+
"html-webpack-plugin": "^2.28.0",
5846
"style-loader": "^0.13.1",
5947
"stylus": "^0.54.5",
60-
"stylus-loader": "^2.3.1",
48+
"stylus-loader": "^2.5.0",
6149
"url-loader": "^0.5.7",
62-
"webpack": "^1.13.1",
63-
"webpack-dev-server": "^1.14.1",
64-
"webpack-merge": "^0.14.1"
50+
"webpack": "^2.2.1",
51+
"webpack-dev-server": "^2.4.1",
52+
"webpack-merge": "^3.0.0"
6553
},
6654
"dependencies": {
6755
"bootstrap-styl": "^5.0.7",
@@ -74,6 +62,7 @@
7462
"font-awesome": "^4.6.3",
7563
"immutability-helper": "^2.0.0",
7664
"immutable": "^3.8.1",
65+
"loader-utils": "^1.0.2",
7766
"lodash": "^4.14.2",
7867
"markdown": "^0.5.0",
7968
"octicons": "^4.3.0",
@@ -87,7 +76,7 @@
8776
"redux-thunk": "^2.1.0",
8877
"reselect": "^2.5.4",
8978
"sh.js": "git+https://github.com/vangie/sh.js#v1.2.28",
90-
"socket.io-client": "^0.9.6",
79+
"socket.io-client": "^1.7.3",
9180
"sockjs-client": "^1.1.1",
9281
"stompjs": "^2.3.3"
9382
}

webpack.config.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ const CommonConfig = {
1616
filename: '[name].js'
1717
},
1818
resolve: {
19-
extensions: ['', '.js', '.jsx']
19+
extensions: ['*', '.js', '.jsx']
20+
},
21+
resolveLoader: {
22+
modules: [path.resolve(__dirname, "webpack_configs/loaders/"), "node_modules"]
2023
},
2124
plugins: [
2225
new HtmlWebpackPlugin({
@@ -28,7 +31,7 @@ const CommonConfig = {
2831
}])
2932
],
3033
module: {
31-
loaders: [
34+
rules: [
3235
{ test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader' }
3336
]
3437
}

webpack_configs/devServer.config.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ module.exports = function (options) {
1616
})
1717
],
1818
module: {
19-
loaders: [
19+
rules: [
2020
{
2121
test: /config\.js$/,
22-
loader: 'regexp-replace',
23-
query: {
22+
loader: 'regexp-replace-loader',
23+
options: {
2424
match: {
2525
pattern: 'baseURL: \'\' \\|\\| window\\.location\\.origin,',
2626
flags: 'g'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module.exports = function (source) {
2+
var query = this.query;
3+
var re = new RegExp(query.match.pattern, query.match.flags);
4+
return source.replace(re, query.replaceWith);
5+
};

webpack_configs/stylesheet.config.js

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,48 @@
11
const bootstrap = require('bootstrap-styl')
2+
const stylusLoader = require('stylus-loader')
23

34
module.exports = function (paths) {
45
return {
56
module: {
6-
loaders: [
7+
rules: [
78
{
89
test: /\.woff\??([a-f\d]+)?(v=\d+\.\d+\.\d+)?$/,
9-
loaders: ['file']
10+
use: ['file-loader']
1011
// loader: "url?limit=10000&mimetype=application/font-woff"
1112
}, {
1213
test: /\.woff2\??([a-f\d]+)?(v=\d+\.\d+\.\d+)?$/,
13-
loaders: ['file']
14+
use: ['file-loader']
1415
// loader: "url?limit=10000&mimetype=application/font-woff"
1516
}, {
1617
test: /\.ttf\??([a-f\d]+)?(v=\d+\.\d+\.\d+)?$/,
17-
loaders: ['file']
18+
use: ['file-loader']
1819
// loader: "url?limit=10000&mimetype=application/octet-stream"
1920
}, {
2021
test: /\.eot\??([a-f\d]+)?(v=\d+\.\d+\.\d+)?$/,
21-
loaders: ['file']
22+
use: ['file-loader']
2223
}, {
2324
test: /\.svg\??([a-f\d]+)?(v=\d+\.\d+\.\d+)?$/,
24-
loaders: ['file']
25+
use: ['file-loader']
2526
// loader: "url?limit=10000&mimetype=image/svg+xml"
2627
}, {
2728
test: /\.styl$/,
28-
loaders: ['style', 'css', 'stylus']
29+
use: [
30+
'style-loader',
31+
'css-loader',
32+
'stylus-loader'
33+
]
2934
}, {
3035
test: /\.css$/,
31-
loaders: ['style', 'css']
36+
use: ['style-loader', 'css-loader']
3237
}
3338
]
3439
},
35-
stylus: {
36-
use: [bootstrap()]
37-
}
40+
// https://github.com/shama/stylus-loader/issues/149
41+
// https://github.com/shama/stylus-loader/pull/154/files#diff-0444c5b7c3bc2c340b3654c507443b06R35
42+
plugins: [
43+
new (stylusLoader.OptionsPlugin)({
44+
default: { use: [bootstrap()] }
45+
})
46+
]
3847
}
3948
}

0 commit comments

Comments
 (0)