浏览代码

Конфиги для webpack

Book Pauk 6 年之前
父节点
当前提交
6db41db9ae
共有 3 个文件被更改,包括 103 次插入0 次删除
  1. 60 0
      build/webpack.base.config.js
  2. 26 0
      build/webpack.dev.config.js
  3. 17 0
      build/webpack.prod.config.js

+ 60 - 0
build/webpack.base.config.js

@@ -0,0 +1,60 @@
+let path = require("path");
+let webpack = require("webpack");
+const VueLoaderPlugin = require('vue-loader/lib/plugin');
+
+module.exports = {
+    entry: ["./client/main.js"],
+    output: {
+        path: path.resolve(__dirname, "..", "server", "public"),
+        publicPath: "/",
+        filename: "[name].js",
+        chunkFilename: "[chunkhash].js"
+    },
+
+    module: {
+        rules: [
+            // это будет применяться к файлам `.js`
+            // А ТАКЖЕ к секциям `<script>` внутри файлов `.vue`
+            {
+            test: /\.js$/,
+            loader: 'babel-loader'
+            },
+            // это будет применяться к файлам `.css`
+            // А ТАКЖЕ к секциям `<style>` внутри файлов `.vue`
+            {
+            test: /\.css$/,
+            use: [
+              'vue-style-loader',
+              'css-loader'
+            ]
+            },
+            {
+                test: /\.gif$/,
+                loader: "url-loader",
+                options: {
+                    name: "images/[name]-[hash:6].[ext]",
+                    limit: 10000
+                }
+            },
+            {
+                test: /\.png$/,
+                loader: "url-loader",
+                options: {
+                    name: "images/[name]-[hash:6].[ext]",
+                    limit: 10000
+                }
+            },
+            {
+                test: /\.jpg$/,
+                loader: "file-loader",
+                options: {
+                    name: "images/[name]-[hash:6].[ext]"
+                }
+            },
+        ]
+    },
+
+    plugins: [
+        new VueLoaderPlugin()
+    ]
+};

+ 26 - 0
build/webpack.dev.config.js

@@ -0,0 +1,26 @@
+let path = require("path");
+let webpack = require("webpack");
+
+let merge = require("webpack-merge");
+let baseWpConfig = require("./webpack.base.config");
+
+baseWpConfig.entry.unshift("webpack-hot-middleware/client");
+
+module.exports = merge(baseWpConfig, {
+    mode: 'none',
+    devtool: "#inline-source-map",
+
+    module: {
+        rules: [
+            {
+                test: /\.vue$/,
+                loader: "vue-loader"
+            }
+        ]
+    },
+
+    plugins: [
+        new webpack.HotModuleReplacementPlugin(),
+        new webpack.NoEmitOnErrorsPlugin()
+    ]
+});

+ 17 - 0
build/webpack.prod.config.js

@@ -0,0 +1,17 @@
+let path = require("path");
+let webpack = require("webpack");
+
+let merge = require("webpack-merge");
+let baseWpConfig = require("./webpack.base.config");
+
+module.exports = merge(baseWpConfig, {
+    mode: 'production',
+    module: {
+        rules: [
+            {
+                test: /\.vue$/,
+                loader: "vue-loader",
+            }
+        ]
+    },
+});