vue webpack 网页标题_vue+webpack 多页面配置

其实多页面的根本就是 webpack多入口和HtmlWebpackPlugin的多页面输出

要生成的多页面配置(pageConfig.js)

module.exports=[

{

entry_name:"login",

title:"爱问医生-登录"

},

{

entry_name:"register",

title:"爱问医生-注册"

},

{

entry_name:"pw_retrieve",

title:"爱问医生-找回密码"

},

{

entry_name:"user_edit",

title:"爱问医生-个人信息"

}

];

生成多入口【build\webpack.base.conf.js】

var appPageArr = require("../src/pageConfig");

var configEntry = {};

appPageArr.forEach((page) => {

configEntry[page.entry_name] =`./src/pages/${page.entry_name}.js`;

});

module.exports = {

entry: configEntry,

output: {

path: config.build.assetsRoot,

filename: "[name].js",

publicPath: process.env.NODE_ENV === "production"

? config.build.assetsPublicPath

: config.dev.assetsPublicPath

},

...

}

开发服务器生成多页面

//多入口生成

var appPageArr = require("../src/pageConfig");

//生成多个html文件

var configHtmlWebpackPlugin = [];

appPageArr.forEach((page) => {

configHtmlWebpackPlugin.push(new HtmlWebpackPlugin({

chunks:["manifest", "vendor",page.entry_name],

filename: page.entry_name+".html",

title: page.title,

template: "index.html",

inject: true

})

);

});

//===========================

module.exports = merge(baseWebpackConfig, {

module: {

rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })

},

// cheap-module-eval-source-map is faster for development

devtool: "#cheap-module-eval-source-map",

plugins: [

new webpack.DefinePlugin({

"process.env": config.dev.env

}),

// https://github.com/glenjamin/webpack-hot-middleware#installation--usage

new webpack.HotModuleReplacementPlugin(),

new webpack.NoEmitOnErrorsPlugin(),

// https://github.com/ampedandwired/html-webpack-plugin

...configHtmlWebpackPlugin,

new FriendlyErrorsPlugin()

]

});

打包配置(打包成多个文件)

var appPageArr = require("../src/pageConfig");

var configHtmlWebpackPlugin = [];

appPageArr.forEach((page) => {

configHtmlWebpackPlugin.push(new HtmlWebpackPlugin({

chunks:["manifest", "vendor",page.entry_name],

filename: page.entry_name+".html",

template: "index.html",

title: page.title,

inject: true,

minify: {

removeComments: true,

collapseWhitespace: true,

removeAttributeQuotes: true

// more options:

// https://github.com/kangax/html-minifier#options-quick-reference

},

// necessary to consistently work with multiple chunks via CommonsChunkPlugin

chunksSortMode: "dependency"

})

);

});

//接下来引用

var webpackConfig = merge(baseWebpackConfig, {

module: {

rules: utils.styleLoaders({

sourceMap: config.build.productionSourceMap,

extract: true

})

},

devtool: config.build.productionSourceMap ? "#source-map" : false,

output: {

path: config.build.assetsRoot,

filename: utils.assetsPath("js/[name].[chunkhash].js"),

chunkFilename: utils.assetsPath("js/[id].[chunkhash].js")

},

plugins: [

// http://vuejs.github.io/vue-loader/en/workflow/production.html

new injectScriptPlugin({

paths: [],

condition: "",

injectCode: ""

}),

new webpack.DefinePlugin({

"process.env": env

}),

new webpack.optimize.UglifyJsPlugin({

compress: {

warnings: false

},

sourceMap: true

}),

// extract css into its own file

new ExtractTextPlugin({

filename: utils.assetsPath("css/[name].[contenthash].css")

}),

// Compress extracted CSS. We are using this plugin so that possible

// duplicated CSS from different components can be deduped.

new OptimizeCSSPlugin({

cssProcessorOptions: {

safe: true

}

}),

// generate dist index.html with correct asset hash for caching.

// you can customize output by editing /index.html

// see https://github.com/ampedandwired/html-webpack-plugin

...configHtmlWebpackPlugin,

// split vendor js into its own file

new webpack.optimize.CommonsChunkPlugin({

name: "vendor",

minChunks: function (module, count) {

// any required modules inside node_modules are extracted to vendor

return (

module.resource &&

/\.js$/.test(module.resource) &&

module.resource.indexOf(

path.join(__dirname, "../node_modules")

) === 0

);

}

}),

// extract webpack runtime and module manifest to its own file in order to

// prevent vendor hash from being updated whenever app bundle is updated

new webpack.optimize.CommonsChunkPlugin({

name: "manifest",

chunks: ["vendor"]

}),

// copy custom static assets

new CopyWebpackPlugin([

{

from: path.resolve(__dirname, "../static"),

to: config.build.assetsSubDirectory,

ignore: [".*"]

}

])

]

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值