クラウドストレージなどでHTMLプレビュー機能が強化され、Vueで作ったSingle Page Applicationもホストしたりできそうという期待から、 JavascriptやCSSの全てをひとつのHTMLファイルに埋め込む方法を試しました。
環境
VueのVersion等
- vue-cli(@vue/cli) 4.3.1
- webpack 4.0.0
- webpack-chain 6.4.0
- html-webpack-plugin 2.3.6
- html-webpack-inline-source-plugin - npm0.0.1.0
- Yarn/Node.js
いわゆるデフォルトのプロジェクトを使います。
html-webbpack-inline-source-pluginの導入
javascriptとcssの展開・埋め込みにhtml-webpack-inline-source-plugin - npmを使います。
yarn add --dev html-webpack-inline-source-plugin
Buildの設定(vue.config.js)
プロジェクトのルートにvue.config.jsを作成します。
// vue.config.js
module.exports = {
css: {
extract: false
},
chainWebpack: config => {
config.plugin('inline-source')
.use(require('html-webpack-inline-source-plugin'))
config.module
.rule('images')
.use('url-loader')
.loader('url-loader')
.tap(options => Object.assign(options, { limit: 10240 }))
config
.plugin('html')
.tap(args => {
args[0].inlineSource = '.(js|css)$'
return args
})
}
}
あとはいつもどおり
yarn build
で/dist以下にindex.htmlが作成されます。
No comments:
Post a Comment