前提・実現したいこと
現在vue create xxxxx
コマンドで作成したvue cliのプロジェクト以下で作業を行っております。
そこで作成したvueファイルをbuildし、圧縮されていないhtmlファイルとして出力したいのですが、
yarn run build
を行うと、viewsディレクトリ以下のvueファイルの読み込み先であるApp.vue
がindex.htmlとしてdistに出力されてしまい、ほかのvueファイルのhtml部分はdist/js
以下にchunk-xxxx.js
ファイルとして出力されてしまっているようです。
解決方法が見つからないため、どなたかアドバイスいただけませんか?
なお、css, jsファイルは圧縮されていてもかまいません。
ディレクトリの構成は以下です。
ディレクトリ構成
root/ ├ dist/ │ └ index.html/ /*ここにApp.vueのhtmlが出力されています*/ │ └ js/ │ └ app.xxxx.js/ │ └ chunk-xxxx.js/ │ └ chunk-xxxx.js.map/ │ └ css/ │ └ ap.xxxx.css/ │ └ chunk-xxxx.css/ │ └ chunk-xxxx.css.map/ ├ node_modules/ ├ public/ │ └ index.html/ ├ src/ │ └ assets/ │ └ css/ │ └ common.css/ │ └ views/ /*以下にhtmlとして静的ファイル化したいvueファイルを置いています*/ │ └ xxx.vue/ │ └ xxx.vue/ │ └ xxx.vue/ │ └ App.vue/ /*このApp.vueファイルにviews以下のファイルを読み込んで表示しているため、build時App.vueのみindex.htmlとして出力されています。*/ │ └ main.js/ │ └ router.js/ ├ package.json/ └ babel.config.js/
該当のソースコード
また、dist/index.html
以下に出力されているApp.vue
のhtmlも以下のように圧縮されて出力されてしまっています。
これを圧縮せず通常のhtmlとして出力することは可能でしょうか?
html
1<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/favicon.ico><title>test</title><link href=/css/chunk-01301913.0b68ce47.css rel=prefetch><link href=/css/chunk-05c9bf46.6c11d586.css rel=prefetch><link href=/css/chunk-2ba7171f.c293360d.css rel=prefetch><link href=/css/chunk-862dcf44.3ec0193b.css rel=prefetch><link href=/css/chunk-c15c9d6c.fef98719.css rel=prefetch><link href=/js/chunk-01301913.76310ee1.js rel=prefetch><link href=/js/chunk-05c9bf46.6c6252dd.js rel=prefetch><link href=/js/chunk-2ba7171f.0eff03a0.js rel=prefetch><link href=/js/chunk-862dcf44.74e9ba62.js rel=prefetch><link href=/js/chunk-c15c9d6c.2ec4885f.js rel=prefetch><link href=/css/app.d8fb8f43.css rel=preload as=style><link href=/css/chunk-vendors.9119ad87.css rel=preload as=style><link href=/js/app.f1aa376b.js rel=preload as=script><link href=/js/chunk-vendors.024a3de2.js rel=preload as=script><link href=/css/chunk-vendors.9119ad87.css rel=stylesheet><link href=/css/app.d8fb8f43.css rel=stylesheet></head><body><noscript><strong>We're sorry but test doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.024a3de2.js></script><script src=/js/app.f1aa376b.js></script></body></html>
以下package.jsonファイルの内容です。
package
1{ 2 "name": "xxx", 3 "version": "0.1.0", 4 "private": true, 5 "scripts": { 6 "serve": "vue-cli-service serve", 7 "build": "vue-cli-service build", 8 "lint": "vue-cli-service lint" 9 }, 10 "dependencies": { 11 "vue": "^2.5.22", 12 "vue-router": "^3.0.1" 13 }, 14 "devDependencies": { 15 "@vue/cli-plugin-babel": "^3.4.0", 16 "@vue/cli-plugin-eslint": "^3.4.0", 17 "@vue/cli-service": "^3.4.0", 18 "@vue/eslint-config-prettier": "^4.0.1", 19 "babel-eslint": "^10.0.1", 20 "eslint": "^5.8.0", 21 "eslint-plugin-vue": "^5.0.0", 22 "vue-template-compiler": "^2.5.21" 23 }, 24 "eslintConfig": { 25 "root": true, 26 "env": { 27 "node": true 28 }, 29 "extends": [ 30 "plugin:vue/essential", 31 "@vue/prettier" 32 ], 33 "rules": {}, 34 "parserOptions": { 35 "parser": "babel-eslint" 36 } 37 }, 38 "postcss": { 39 "plugins": { 40 "autoprefixer": {} 41 } 42 }, 43 "browserslist": [ 44 "> 1%", 45 "last 2 versions", 46 "not ie <= 8" 47 ] 48} 49
補足
public/index.html
には圧縮されていないApp.vue
のhtmlが出力されています。
これはyarn run dev
を実行したときのcompile結果だと思うのですが、他のvueファイル、css, jsファイルもpublic以下に出力することはできますか?
もし可能であればbuildする必要はないと考えたので、、
追記
vue cli-service
のbuild --target
でcompileするファイルを指定できるかと思いましたが、うまくいきませんでした。。
あなたの回答
tips
プレビュー