Skip to content

Commit 01685ff

Browse files
committed
Initial Commit
0 parents  commit 01685ff

16 files changed

+5801
-0
lines changed

.babelrc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"presets": [
3+
["env", {
4+
"targets": {
5+
"browsers": [ ">5%", "last 2 versions" ]
6+
},
7+
"modules": false
8+
}],
9+
"stage-3"
10+
],
11+
"plugins": [
12+
"syntax-dynamic-import"
13+
],
14+
}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
dist
2+
node_modules

build/webpack.base.config.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
const webpack = require('webpack');
2+
const VueLoaderPlugin = require('vue-loader/lib/plugin');
3+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
4+
5+
const isProd = process.env.NODE_ENV === 'production';
6+
const isDev = !isProd;
7+
const environment = isProd ? 'production' : 'development';
8+
9+
console.log(`process.env.NODE_ENV: ${process.env.NODE_ENV}`);
10+
console.log(`Webpack building for environment: ${environment}`);
11+
12+
module.exports = {
13+
isDev,
14+
isProd,
15+
getBaseConfig(type) {
16+
return {
17+
mode: environment,
18+
devtool: false,
19+
output: {
20+
publicPath: '/dist/',
21+
filename: '[name].js',
22+
},
23+
resolve: {
24+
extensions: ['*', '.js', '.vue', '.json'],
25+
},
26+
module: {
27+
rules: [
28+
{
29+
test: /\.vue$/,
30+
loader: 'vue-loader',
31+
},
32+
{
33+
test: /\.js$/,
34+
loader: 'babel-loader',
35+
exclude: /node_modules/,
36+
},
37+
{
38+
test: /\.css$/,
39+
use: type === 'server' ?
40+
['css-loader/locals'] :
41+
[MiniCssExtractPlugin.loader, {
42+
loader: 'css-loader',
43+
options: {
44+
minimize: isProd,
45+
},
46+
}],
47+
},
48+
],
49+
},
50+
plugins: [
51+
new webpack.DefinePlugin({
52+
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
53+
}),
54+
new VueLoaderPlugin(),
55+
new MiniCssExtractPlugin({
56+
filename: 'app.css',
57+
chunkFilename: '[name].css',
58+
}),
59+
],
60+
};
61+
},
62+
};

build/webpack.client.config.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/* eslint-disable import/no-extraneous-dependencies */
2+
const webpack = require('webpack');
3+
const merge = require('webpack-merge');
4+
/* eslint-enable import/no-extraneous-dependencies */
5+
6+
const VueSSRClientPlugin = require('vue-server-renderer/client-plugin');
7+
8+
const { getBaseConfig } = require('./webpack.base.config');
9+
10+
module.exports = function getClientConfig(configOpts) {
11+
const clientConfig = merge(getBaseConfig('client'), {
12+
name: 'client',
13+
entry: {
14+
app: './src/entry-client.js',
15+
},
16+
plugins: [
17+
new webpack.DefinePlugin({ 'process.env.VUE_ENV': '"client"' }),
18+
new VueSSRClientPlugin(),
19+
],
20+
});
21+
22+
return clientConfig;
23+
};

build/webpack.server.config.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/* eslint-disable import/no-extraneous-dependencies */
2+
const webpack = require('webpack');
3+
const merge = require('webpack-merge');
4+
/* eslint-enable import/no-extraneous-dependencies */
5+
6+
const VueSSRServerPlugin = require('vue-server-renderer/server-plugin');
7+
8+
const { getBaseConfig } = require('./webpack.base.config');
9+
10+
module.exports = function getServerConfig(configOpts) {
11+
const serverConfig = merge(getBaseConfig('server'), {
12+
name: 'server',
13+
entry: './src/entry-server.js',
14+
output: {
15+
filename: 'server-bundle.js',
16+
libraryTarget: 'commonjs2',
17+
},
18+
target: 'node',
19+
plugins: [
20+
new webpack.DefinePlugin({ 'process.env.VUE_ENV': '"server"' }),
21+
new VueSSRServerPlugin(),
22+
],
23+
});
24+
25+
return serverConfig;
26+
};

0 commit comments

Comments
 (0)