UNPKG

3.76 kBJavaScriptView Raw
1const path = require('path');
2const autoprefixer = require('autoprefixer');
3const webpack = require('webpack');
4const merge = require('webpack-merge');
5
6const base = require('./base');
7
8module.exports = arg =>
9 merge(base(arg), {
10 mode: 'development',
11
12 module: {
13 rules: [
14 {
15 test: /\.jsx?$/,
16 include: path.resolve(arg.context, './src'),
17 loader: 'babel-loader',
18 options: arg.options.babelrc
19 ? { babelrc: true }
20 : {
21 babelrc: false,
22 presets: [
23 [
24 require.resolve('babel-preset-env'),
25 {
26 targets: {
27 browsers: arg.options.browsers,
28 },
29 modules: false,
30 spec: true,
31 useBuiltIns: true,
32 },
33 ],
34 require.resolve('babel-preset-stage-2'),
35 require.resolve('babel-preset-react'),
36 ],
37 plugins: [require.resolve('babel-plugin-transform-decorators-legacy')],
38 },
39 },
40 {
41 test: /\.css$/,
42 oneOf: [
43 {
44 exclude: /node_modules/,
45 use: [
46 'style-loader',
47 {
48 loader: 'css-loader',
49 options: { modules: arg.options.cssModules, camelCase: 'only', importLoaders: 1 },
50 },
51 {
52 loader: 'postcss-loader',
53 options: {
54 ident: 'postcss',
55 plugins: () => [autoprefixer({ browsers: arg.options.browsers })],
56 },
57 },
58 ],
59 },
60 {
61 include: /node_modules/,
62 use: [
63 'style-loader',
64 {
65 loader: 'css-loader',
66 options: { importLoaders: 1 },
67 },
68 {
69 loader: 'postcss-loader',
70 options: {
71 ident: 'postcss',
72 plugins: () => [autoprefixer({ browsers: arg.options.browsers })],
73 },
74 },
75 ],
76 },
77 ],
78 },
79 {
80 test: /\.less$/,
81 oneOf: [
82 {
83 exclude: /node_modules/,
84 use: [
85 'style-loader',
86 {
87 loader: 'css-loader',
88 options: { modules: arg.options.cssModules, camelCase: 'only', importLoaders: 1 },
89 },
90 {
91 loader: 'postcss-loader',
92 options: {
93 ident: 'postcss',
94 plugins: () => [autoprefixer({ browsers: arg.options.browsers })],
95 },
96 },
97 'less-loader',
98 ],
99 },
100 {
101 include: /node_modules/,
102 use: [
103 'style-loader',
104 {
105 loader: 'css-loader',
106 options: { importLoaders: 1 },
107 },
108 {
109 loader: 'postcss-loader',
110 options: {
111 ident: 'postcss',
112 plugins: () => [autoprefixer({ browsers: arg.options.browsers })],
113 },
114 },
115 'less-loader',
116 ],
117 },
118 ],
119 },
120 ],
121 },
122
123 plugins: [
124 new webpack.DefinePlugin({
125 __ENV__: JSON.stringify('dev'),
126 }),
127 ],
128
129 performance: {
130 hints: false,
131 },
132 });