UNPKG

2.82 kBJavaScriptView Raw
1var ExtractTextPlugin = require("extract-text-webpack-plugin");
2
3module.exports = {
4 getJSLoader: function(cx, devMode) {
5 return {
6 test: /\.jsx?$/,
7 include: [cx.__sourcedir],
8 use: [{
9 loader: 'babel-loader',
10 query: {
11 cacheDirectory: true,
12 presets: [
13 require.resolve('babel-preset-env'),
14 require.resolve('babel-preset-react'),
15 require.resolve('babel-preset-stage-0')
16 ],
17 plugins: [
18 [
19 require.resolve('babel-plugin-import'),
20 { "libraryName": "antd", "style": true }
21 ],
22 require.resolve("babel-plugin-transform-runtime"),
23 require.resolve('react-hot-loader/babel')
24 ]
25 }
26 }, 'webpack-module-hot-accept']
27 }
28 },
29
30 getCSSLoader: function(cx, devMode) {
31 let use = [{
32 loader: 'css-loader',
33 options: Object.assign({
34 sourceMap: devMode,
35 minimize: !devMode,
36 modules: false,
37 url: false
38 })
39 }];
40 if (devMode) {
41 use.unshift('style-loader');
42 } else {
43 use = ExtractTextPlugin.extract({
44 fallback: 'style-loader',
45 use
46 })
47 }
48 return { test: /\.css$/, use }
49 },
50
51 getLESS_SRCLoader: function(cx, devMode) {
52 let use = [{
53 loader: 'css-loader',
54 options: Object.assign({
55 sourceMap: devMode,
56 minimize: !devMode,
57 localIdentName: '[local]_[hash:base64:5]',
58 modules: false,
59 }, cx.umdConf.webpackFeatures.enableCSSModule)
60 }, {
61 loader: 'postcss-loader',
62 options: {
63 plugins: (loader) => [
64 require('postcss-flexbugs-fixes')(),
65 require('autoprefixer')({
66 browsers: [
67 '>1%',
68 'last 4 versions',
69 'Firefox ESR',
70 'not ie < 9', // React doesn't support IE8 anyway
71 ],
72 flexbox: 'no-2009',
73 }),
74 ],
75 }
76 }, {
77 loader: 'less-loader',
78 options: {
79 modifyVars: {
80 '@icon-url': '"../../../../antd-iconfont/iconfont"',
81 },
82 },
83 }]
84 if (devMode) {
85 use.unshift('style-loader');
86 } else {
87 use = ExtractTextPlugin.extract({
88 fallback: 'style-loader',
89 use
90 })
91 }
92 return { test: /\.less$/, use }
93 },
94
95 // 25k
96 getImgLoader: function(cx, devMode) {
97 return {
98 test: /\.(jpe?g|png|svg|gif)$/i,
99 use: `url-loader?prefix=img&limit=25000&name=[name]${devMode?'':'_[hash:7]'}.[ext]`,
100 }
101 },
102
103 getFontLoader: function(cx, devMode) {
104 return {
105 test: /.otf$|\.ttf$|\.eot$|\.woff2?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
106 loader: 'file-loader',
107 options: {
108 name: `[name]${devMode?'':'_[hash:7]'}.[ext]`
109 },
110 }
111 }
112}
\No newline at end of file