build/vue-loader.coonfig.js
module.exports = (isDev) => { return { preserveWhitepace: true, //清除文本換行等情況空格 extractCSS: isDev ? false : true, // 把vue的css提取到單獨的文件,默認 cssModules: { localIndetName: '[xxx]', camcelcase: true }, // 用法:<style module> hotReload: true, // 熱更新,默認會自動判斷是否開發環境自動開啟關閉,其實關閉后也會刷新頁面更新 }; };
webpack.config.base.js修改如下:
const path = require('path');
const vueloaderOptions=require('./vue-loader.config')
const isDev = process.env.NODE_ENV === 'development'
const config = {
target: 'web',
entry: path.join(__dirname, '../client/index.js'), //__dirname 當前文件所在的目錄地址
output: {
filename: 'bundle.js',
path: path.join(__dirname, '../dist'),
},
module: {
rules: [
{ test: /\.vue$/,
loader: 'vue-loader',
options:vueloaderOptions(isDev),
exclude:/node_modules/
},
rimraf——每次打包之前刪除之前的包 執行命令 rimraf dist
package.json配置如下:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build:client": "cross-env NODE_ENV=production webpack --config build/webpack.config.client.js","clean": "rimraf dist", "build": "npm run clean && npm run build:client", "dev": "cross-env NODE_ENV=development webpack-dev-server --config build/webpack.config.client.js" },
