Skip to content

Commit 42b1bcd

Browse files
committed
chore: add 'webpack' to 'lint' tasks, small refactors
1 parent 01beb7b commit 42b1bcd

File tree

3 files changed

+41
-43
lines changed

3 files changed

+41
-43
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
"start:classes": "cross-env USE_CSS_MODULES=false babel-node webpack/server.js",
2727
"flow": "flow; test $? -eq 0 -o $? -eq 2",
2828
"lint": "npm run lint:js && npm run lint:css",
29-
"lint:js": "eslint src cmrh.conf.js",
29+
"lint:js": "eslint src webpack cmrh.conf.js",
3030
"lint:css": "sass-lint 'src/**/*.scss' -v -q",
31-
"lint:fix": "eslint src --fix",
31+
"lint:fix": "eslint src webpack --fix",
3232
"pre-commit": "npm run lint && npm run flow"
3333
},
3434
"pre-commit": [

webpack/server.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
import WebpackDevServer from 'webpack-dev-server'
22
import webpack from 'webpack'
3-
import path from 'path'
4-
5-
import configMaker, { outputPath } from './webpack.config.js'
3+
import configMaker, { outputPath } from './webpack.config'
64

75
const config = configMaker()
8-
var compiler = webpack(config)
9-
10-
6+
const compiler = webpack(config)
117

128
const server = new WebpackDevServer(compiler, {
139
contentBase: outputPath,

webpack/webpack.config.js

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -11,50 +11,52 @@ const CSS_REGEX = /\.css$|\.scss$/
1111
const context = path.join(__dirname, '../src/js')
1212
export const outputPath = 'www'
1313

14+
type GetRulesInputType = { useCssModules: boolean }
1415

15-
const getRules = options => {
16-
const useCssModules = JSON.parse(process.env.USE_CSS_MODULES)
17-
18-
return [
19-
{
20-
test: JS_REGEX,
21-
loaders: ['babel-loader'],
22-
exclude: /node_modules/
23-
},
24-
{
25-
test: CSS_REGEX,
26-
loader: ExtractTextPlugin.extract({
27-
fallback: "style-loader",
28-
use: [
29-
{ loader: 'css-loader', query: {
16+
const getRules = ({ useCssModules }: GetRulesInputType): {}[] => [
17+
{
18+
test: JS_REGEX,
19+
loaders: ['babel-loader'],
20+
exclude: /node_modules/
21+
},
22+
{
23+
test: CSS_REGEX,
24+
loader: ExtractTextPlugin.extract({
25+
fallback: 'style-loader',
26+
use: [
27+
{ loader: 'css-loader',
28+
query: {
3029
modules: useCssModules,
3130
importLoaders: useCssModules ? 2 : '',
3231
localIdentName: useCssModules ? '[name]__[local]__[hash:base64:5]' : ''
3332
} },
34-
{ loader: 'postcss-loader', options: {
33+
{ loader: 'postcss-loader',
34+
options: {
3535
plugins: [
3636
autoprefixer({ browsers: ['last 4 versions'] }),
3737
],
3838
} },
3939
{ loader: 'sass-loader', options: {} }
40-
]
41-
}),
42-
},
43-
{
44-
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
45-
loader: "file-loader"
46-
},
47-
{
48-
test: /\.json$/,
49-
loader: "json-loader"
50-
}
51-
]
52-
}
40+
]
41+
}),
42+
},
43+
{
44+
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
45+
loader: 'file-loader'
46+
},
47+
{
48+
test: /\.json$/,
49+
loader: 'json-loader'
50+
}
51+
]
5352

5453

55-
const config = options => {
54+
const config = (options: {}): {} => {
55+
const useCssModules = JSON.parse(process.env.USE_CSS_MODULES)
56+
const computedOptions = { useCssModules, ...options }
57+
5658
return {
57-
context: context,
59+
context,
5860
entry: [
5961
`webpack-dev-server/client?http://0.0.0.0:${port}/`,
6062
path.join(context, 'index.js'),
@@ -79,12 +81,12 @@ const config = options => {
7981
})
8082
],
8183
node: {
82-
fs: "empty"
84+
fs: 'empty'
8385
},
8486
module: {
85-
rules: getRules(options)
86-
}
87-
}
87+
rules: getRules(computedOptions)
88+
}
89+
}
8890
}
8991

9092
export default config

0 commit comments

Comments
 (0)