1 | var path = require("path");
|
2 | var autoprefixer = require("autoprefixer");
|
3 | var webpack = require("webpack");
|
4 | var HtmlWebpackPlugin = require("html-webpack-plugin");
|
5 | var CaseSensitivePathsPlugin = require("case-sensitive-paths-webpack-plugin");
|
6 | var WatchMissingNodeModulesPlugin = require("../scripts/utils/WatchMissingNodeModulesPlugin");
|
7 | var paths = require("./paths");
|
8 | var env = require("./env");
|
9 | module.exports = {
|
10 | devtool: "eval",
|
11 | entry: [require.resolve("webpack-dev-server/client") + "?/", require.resolve("webpack/hot/dev-server"), path.join(paths.appSrc, "index")],
|
12 | output: {
|
13 | path: paths.appBuild,
|
14 | pathinfo: true,
|
15 | filename: "static/js/bundle.js",
|
16 | publicPath: "/"
|
17 | },
|
18 | resolve: {
|
19 | extensions: [".js", ".json", ""],
|
20 | alias: {}
|
21 | },
|
22 | resolveLoader: {
|
23 | root: paths.ownNodeModules,
|
24 | moduleTemplates: ["*-loader"]
|
25 | },
|
26 | module: {
|
27 | loaders: [{
|
28 | test: /\.js$/,
|
29 | loader: "babel",
|
30 | query: require("./babel.dev")
|
31 | }, {
|
32 | test: /\.css$/,
|
33 | loader: "style!css!postcss"
|
34 | }, {
|
35 | test: /\.json$/,
|
36 | loader: "json"
|
37 | }, {
|
38 | test: /\.(ico|jpg|png|gif|eot|svg|ttf|woff|woff2)(\?.*)?$/,
|
39 | exclude: /\/favicon.ico$/,
|
40 | loader: "file",
|
41 | query: {
|
42 | name: "static/media/[name].[hash:8].[ext]"
|
43 | }
|
44 | }, {
|
45 | test: /\/favicon.ico$/,
|
46 | loader: "file",
|
47 | query: {
|
48 | name: "favicon.ico?[hash:8]"
|
49 | }
|
50 | }, {
|
51 | test: /\.html$/,
|
52 | loader: "html",
|
53 | query: {
|
54 | attrs: ["link:href"],
|
55 | }
|
56 | }]
|
57 | },
|
58 | externals: {
|
59 | "jQuery":true,
|
60 | "jquery": true,
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 | },
|
68 | postcss: function() {
|
69 | return [autoprefixer({
|
70 | browsers: [">1%", "last 4 versions", "Firefox ESR", "not ie < 9", ]
|
71 | }), ]
|
72 | },
|
73 | plugins: [new HtmlWebpackPlugin({
|
74 | inject: true,
|
75 | template: paths.appHtml,
|
76 | }), new webpack.DefinePlugin(env), new webpack.HotModuleReplacementPlugin(), new CaseSensitivePathsPlugin(), new WatchMissingNodeModulesPlugin(paths.appNodeModules)]
|
77 | }; |
\ | No newline at end of file |