Vue项目打包成单个HTML文件

3,548 阅读1分钟

昨天碰到一个新的需求,将Vue项目打包成单个HTML文件。

因为Vue项目默认是打包成一个dist文件夹,带有css,js,fonts文件,现需要打包成单独的HTML文件。

用到两个插件:

html-webpack-plugin, html-webpack-inline-plugin

npm下载:

npm install --save -dev html-webpack-plugin
npm install --save -dev html-webpack-inline-plugin


更改router路由引入方式:

由

{
    path: '/index',
    component: () => import('@/views/index/Index.vue')
}

更改为:

import Index from '@/views/index/Index.vue')

{
    path: '/index,
    component: Index
}

更改vue.config.js配置文件:
module.exports = {
  publicPath: '',
  chainWebpack: config => {
    config.plugin('preload')
      .tap(args => {
        args[0].fileBlacklist.push(/\.css/, /\.js/)
        return args
      })
    config.plugin('inline-source')
      .use(require('html-webpack-inline-source-plugin'))
    config
      .plugin('html')
      .tap(args => {
        args[0].title = '正负面清单'
        args[0].inlineSource = '(\.css|\.js$)'
        return args
      })
  },
  productionSourceMap: false,
  devServer: {
    https: false
  }
}

执行npm run build报错,好像是版本问题

查看webpack版本:4.46.0
把插件卸载后重新安装,最后安装版本:

"html-webpack-inline-source-plugin": "^0.0.10",
"html-webpack-plugin": "^4.0.0",

执行npm run build,报错:没有找到cache-loader

百度原因,说要重新安装所有依赖。于是删除node_modules, 执行 npm install ,再执行 npm run build

无效

执行 npm install cache-loader, npm run build
成功打包