使用webpack实现生成html时自动生成环境链接

webpack admin 暂无评论

需求:使用vue-cli,npm run build的时候生成index.html文件,在index.html文件中需要按需加载script和socket的链接

1、配置config/index.js

module.exports = {
 build: {
   env: require('./prod.env'), //这里依赖prod.evn.js
   index: path.resolve(__dirname, '../dist/index.html'),
   assetsRoot: path.resolve(__dirname, '../dist'),
   assetsSubDirectory: 'static',
   assetsPublicPath: '',
   productionSourceMap: true,
   // Gzip off by default as many popular static hosts such as
   // Surge or Netlify already gzip all static assets for you.
   // Before setting to `true`, make sure to:
   // npm install --save-dev compression-webpack-plugin
   productionGzip: false,
   productionGzipExtensions: ['js', 'css']
 }

2、配置prod.env.js

module.exports = {
 NODE_ENV: '"production"',
 SOCKET_SCRIPT:'http://www.xxxxx.com:8970',
 SOCKET_CONNECT:'www.xxxxx.com:8970'
}

3、配置webpack.prod.conf.js

在HtmlWebpackPlugin插件中配置socketScript和socketConnect

var env = config.build.env //这里依赖1中配置的文件
new HtmlWebpackPlugin({ //生成html的配置
     filename: config.build.index,
     template: 'index.html',
     socketScript:env.SOCKET_SCRIPT, //配置文件
     socketConnect:env.SOCKET_CONNECT,
     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'
   }),

4、在index.html中配置自定义的路径

<%= htmlwebpackplugin.options.socketscript=""> 这个是重点


<html>
 <head>
   <meta charset="utf-8">
   <title>xxxxtitle>

   <script src= '<%= htmlWebpackPlugin.options.socketScript %>/socket.io/socket.io.js' >script>
   <script>
     var socket = io.connect('<%=
htmlWebpackPlugin.options.socketConnect %>');
   
script>


 head>
 <body>
   <div id="app">div>
   
 body>
html>

npm run build

以后每次编译之后,只需要执行npm run build,上面的路径就自动配制成功了。

然后就可以添加不同的配置命令达到不同环境配置不同的url链接。


转载请注明: Vue教程中文网 - 打造国内领先的vue学习网站-vue视频,vue教程,vue学习,vue培训 » 使用webpack实现生成html时自动生成环境链接

喜欢 ()or分享