vue.js中增加骨架页面

vuejs-template/webpackvuejs-template/pwa 中增加骨架页面 vue-skeleton-webpack-plugin

安装骨架页面插件库

1
yarn add vue-skeleton-webpack-plugin -D

build/webpack.skeleton.conf.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
'use strict';

const path = require('path')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const nodeExternals = require('webpack-node-externals')

module.exports = merge(baseWebpackConfig, {
target: 'node',
devtool: false,
entry: {
app: path.resolve(__dirname, '../src/entry-skeleton.js')
},
output: Object.assign({}, baseWebpackConfig.output, {
libraryTarget: 'commonjs2'
}),
externals: nodeExternals({
whitelist: /\.css$/
}),
plugins: []
})

build/vue-loader.conf.js

找到 extract: isProduction 修改为 extract: true

build/webpack.dev.conf.js

plugins 中对象中增加插件, 需要引入模块 const ExtractTextPlugin = require('extract-text-webpack-plugin')

1
2
3
4
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css')
})

build/webpack.dev.conf.js webpack.prod.conf.js

plugins 中对象中增加插件, 需要引入模块 const SkeletonWebpackPlugin = require('vue-skeleton-webpack-plugin')
需要引入模块 const SkeletonWebpackPlugin = require('vue-skeleton-webpack-plugin')

1
2
3
4
5
// inject skeleton content(DOM & CSS) into HTML
new SkeletonWebpackPlugin({
webpackConfig: require('./webpack.skeleton.conf'),
quiet: true
})