Skip to content

Commit 63d9bef

Browse files
authored
Merge pull request #889 from outoftime/webpack-cleanup
Clean up webpack config
2 parents 4926cb2 + b789705 commit 63d9bef

3 files changed

Lines changed: 99 additions & 93 deletions

File tree

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@
154154
"devDependencies": {
155155
"babel-cli": "^6.23.0",
156156
"babel-core": "^6.14.0",
157-
"babel-loader": "^6.2.4",
157+
"babel-loader": "^7.1.1",
158158
"babel-polyfill": "^6.6.1",
159159
"babel-preset-env": "^1.5.1",
160160
"babel-preset-es2015": "^6.24.1",
@@ -206,7 +206,7 @@
206206
"string-replace-loader": "^1.0.5",
207207
"stylelint-selector-bem-pattern": "^1.0.0",
208208
"substitute-loader": "^1.0.0",
209-
"svg-react-loader": "^0.4.0-beta.2",
209+
"svg-react-loader": "^0.4.4",
210210
"svgo": "^0.7.2",
211211
"svgo-loader": "^1.1.2",
212212
"tape": "^4.6.3",

webpack.config.js

Lines changed: 72 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ let targets;
1919
if (process.env.DEBUG === 'true') {
2020
targets = {browsers: 'last 1 Chrome version'};
2121
} else {
22-
targets = JSON.parse(fs.readFileSync('./config/browsers.json'));
22+
targets = JSON.parse(
23+
fs.readFileSync(path.resolve(__dirname, 'config/browsers.json'))
24+
);
2325
}
2426
const babelrc = {
2527
presets: [
@@ -69,7 +71,7 @@ module.exports = {
6971
sourceMapFilename: 'application.js.map',
7072
},
7173
module: {
72-
loaders: [
74+
rules: [
7375
{
7476
test: /\.jsx?$/,
7577
include: [
@@ -78,50 +80,70 @@ module.exports = {
7880
],
7981
use: [
8082
{loader: 'babel-loader', options: babelrc},
81-
{loader: 'eslint-loader'},
83+
'eslint-loader'
8284
],
8385
},
8486
{
85-
test: /\.js$/,
86-
include: [
87-
path.resolve(__dirname, 'node_modules/htmllint'),
88-
],
89-
loader: 'transform-loader/cacheable?bulkify',
87+
test: /\.json$/,
88+
use: ['json-loader'],
9089
},
9190
{
92-
test: /\.js$/,
9391
include: [
94-
path.resolve(__dirname, 'node_modules/PrettyCSS'),
95-
path.resolve(__dirname, 'node_modules/css'),
92+
path.resolve(__dirname, 'bower_components'),
93+
path.resolve(__dirname, 'templates'),
9694
],
97-
loader: 'transform-loader/cacheable?brfs',
95+
use: ['raw-loader'],
9896
},
9997
{
100-
test: /\.js$/,
101-
include: [
102-
path.resolve(__dirname, 'node_modules/postcss/lib/previous-map'),
103-
path.resolve(
104-
__dirname,
105-
'node_modules/stylelint/lib/getPostcssResult'
106-
),
107-
matchModule('postcss/lib/previous-map'),
98+
test: /\.svg$/,
99+
use: [
100+
'svg-react-loader',
101+
{
102+
loader: 'svgo-loader',
103+
options: {
104+
plugins: [
105+
{
106+
removeXMLNS: true,
107+
},
108+
{
109+
removeAttrs: {
110+
active: true,
111+
attrs: 'svg:data-name',
112+
},
113+
},
114+
],
115+
},
116+
},
108117
],
109-
loader: 'string-replace-loader',
110-
query: {
111-
search: /require\(['"]fs['"]\)/,
112-
replace: '{}',
113-
},
118+
},
119+
{
120+
include: path.resolve(__dirname, 'locales'),
121+
use: [{
122+
loader: 'i18next-resource-store-loader',
123+
options: 'include=\\.json$',
124+
}],
125+
},
126+
{
127+
include: matchModule('htmllint'),
128+
enforce: 'post',
129+
use: ['transform-loader/cacheable?bulkify'],
130+
},
131+
{
132+
include: [matchModule('PrettyCSS'), matchModule('css')],
133+
use: ['transform-loader/cacheable?brfs'],
114134
},
115135
{
116136
test: /\.js$/,
117137
include: [
118138
matchModule('htmllint'),
119139
],
120-
loader: 'string-replace-loader',
121-
query: {
122-
search: 'require(plugin)',
123-
replace: 'undefined',
124-
},
140+
use: [{
141+
loader: 'string-replace-loader',
142+
options: {
143+
search: 'require(plugin)',
144+
replace: 'undefined',
145+
},
146+
}],
125147
},
126148
{
127149
test: /\.js$/,
@@ -131,8 +153,10 @@ module.exports = {
131153
'node_modules/stylelint/lib/utils/isAutoprefixable'
132154
),
133155
],
134-
loader: 'substitute-loader',
135-
query: {content: '() => false'},
156+
use: [{
157+
loader: 'substitute-loader',
158+
options: {content: '() => false'},
159+
}],
136160
},
137161
{
138162
test: /\.js$/,
@@ -145,14 +169,14 @@ module.exports = {
145169
use: {loader: 'babel-loader', options: babelrc},
146170
},
147171
{
148-
include: [
149-
path.resolve(
150-
__dirname,
151-
'node_modules/html-inspector/html-inspector.js'
152-
),
172+
include: matchModule('html-inspector'),
173+
use: [
174+
{loader: 'imports-loader', options: 'window=>{}'},
175+
{
176+
loader: 'exports-loader',
177+
options: {'window.HTMLInspector': true},
178+
},
153179
],
154-
loader:
155-
'imports-loader?window=>{}!exports-loader?window.HTMLInspector',
156180
},
157181
{
158182
test: /\.js$/,
@@ -165,7 +189,7 @@ module.exports = {
165189
matchModule('stylelint/lib/dynamicRequire'),
166190
matchModule('css/lib/stringify/source-map-support'),
167191
],
168-
loader: 'null-loader',
192+
use: ['null-loader'],
169193
},
170194
{
171195
test: /\.js$/,
@@ -176,48 +200,11 @@ module.exports = {
176200
'declaration-block-trailing-semicolon/index.js',
177201
]
178202
),
179-
loader: 'null-loader',
180-
},
181-
{
182-
test: /\.json$/,
183-
loader: 'json-loader',
184-
},
185-
{
186-
include: [
187-
path.resolve(__dirname, 'bower_components'),
188-
path.resolve(__dirname, 'templates'),
189-
],
190-
use: {loader: 'raw-loader'},
191-
},
192-
{
193-
test: /\.svg$/,
194-
loader: [
195-
'svg-react-loader',
196-
{
197-
loader: 'svgo-loader',
198-
query: {
199-
plugins: [
200-
{
201-
removeXMLNS: true,
202-
},
203-
{
204-
removeAttrs: {
205-
active: true,
206-
attrs: 'svg:data-name',
207-
},
208-
},
209-
],
210-
},
211-
},
212-
],
213-
},
214-
{
215-
include: path.resolve(__dirname, 'locales'),
216-
loader: 'i18next-resource-store-loader',
217-
query: 'include=\\.json$',
218-
},
203+
use: ['null-loader'],
204+
}
219205
],
220206
},
207+
221208
plugins: [
222209
new webpack.EnvironmentPlugin({
223210
FIREBASE_APP: 'popcode-development',
@@ -229,6 +216,11 @@ module.exports = {
229216
GOOGLE_ANALYTICS_TRACKING_ID: 'UA-90316486-2'
230217
}),
231218
],
219+
220+
node: {
221+
fs: 'empty',
222+
},
223+
232224
resolve: {
233225
alias: {
234226
'github-api$': 'github-api/dist/components/GitHub.js',

yarn.lock

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -506,14 +506,13 @@ babel-helpers@^6.24.1:
506506
babel-runtime "^6.22.0"
507507
babel-template "^6.24.1"
508508

509-
babel-loader@^6.2.4:
510-
version "6.4.1"
511-
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca"
509+
babel-loader@^7.1.1:
510+
version "7.1.1"
511+
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.1.tgz#b87134c8b12e3e4c2a94e0546085bc680a2b8488"
512512
dependencies:
513-
find-cache-dir "^0.1.1"
514-
loader-utils "^0.2.16"
513+
find-cache-dir "^1.0.0"
514+
loader-utils "^1.0.2"
515515
mkdirp "^0.5.1"
516-
object-assign "^4.0.1"
517516

518517
babel-messages@^6.23.0:
519518
version "6.23.0"
@@ -3160,6 +3159,14 @@ find-cache-dir@^0.1.1:
31603159
mkdirp "^0.5.1"
31613160
pkg-dir "^1.0.0"
31623161

3162+
find-cache-dir@^1.0.0:
3163+
version "1.0.0"
3164+
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
3165+
dependencies:
3166+
commondir "^1.0.1"
3167+
make-dir "^1.0.0"
3168+
pkg-dir "^2.0.0"
3169+
31633170
find-index@^0.1.1:
31643171
version "0.1.1"
31653172
resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
@@ -3175,7 +3182,7 @@ find-up@^1.0.0:
31753182
path-exists "^2.0.0"
31763183
pinkie-promise "^2.0.0"
31773184

3178-
find-up@^2.0.0:
3185+
find-up@^2.0.0, find-up@^2.1.0:
31793186
version "2.1.0"
31803187
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
31813188
dependencies:
@@ -4719,7 +4726,7 @@ loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.
47194726
json5 "^0.5.0"
47204727
object-assign "^4.0.1"
47214728

4722-
loader-utils@^1.0.2, loader-utils@^1.0.3, loader-utils@^1.1.0:
4729+
loader-utils@1.1.0, loader-utils@^1.0.2, loader-utils@^1.0.3, loader-utils@^1.1.0:
47234730
version "1.1.0"
47244731
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
47254732
dependencies:
@@ -5861,6 +5868,12 @@ pkg-dir@^1.0.0:
58615868
dependencies:
58625869
find-up "^1.0.0"
58635870

5871+
pkg-dir@^2.0.0:
5872+
version "2.0.0"
5873+
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
5874+
dependencies:
5875+
find-up "^2.1.0"
5876+
58645877
pkg-up@^1.0.0:
58655878
version "1.0.0"
58665879
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26"
@@ -7709,11 +7722,12 @@ supports-color@^3.1.0, supports-color@^3.1.2, supports-color@^3.2.3:
77097722
dependencies:
77107723
has-flag "^1.0.0"
77117724

7712-
svg-react-loader@^0.4.0-beta.2:
7713-
version "0.4.0-beta.2"
7714-
resolved "https://registry.yarnpkg.com/svg-react-loader/-/svg-react-loader-0.4.0-beta.2.tgz#3dc8702aff538703712862be47eb2bc6d01ccf72"
7725+
svg-react-loader@^0.4.4:
7726+
version "0.4.4"
7727+
resolved "https://registry.yarnpkg.com/svg-react-loader/-/svg-react-loader-0.4.4.tgz#ea3b2ebc8ff8eaafd7cca5b86750f90a2faac4fd"
77157728
dependencies:
77167729
css "2.2.1"
7730+
loader-utils "1.1.0"
77177731
ramda "0.21.0"
77187732
rx "4.1.0"
77197733
traverse "0.6.6"

0 commit comments

Comments
 (0)