vue createでテンプレートを作成する

こんな感じてテンプレートを作成しました。

複数ページでPWAにします。

Vue CLI v3.8.2
? Please pick a preset: Manually select features
? Check the features needed for your project:
◉ Babel
◯  TypeScript
◉ Progressive Web App (PWA) Support
◉ Router
◯ Vuex
◯ CSS Pre-processors
◉ Linter / Formatter
◯ Unit Testing
◯ E2E Testing
? Use class-style component syntax? (Y/n) Y
? Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)? (Y/n) Y
? Use history mode for router? (Requires proper server setup for index fallback in production) Yes
? Pick a linter / formatter config: (Use arrow keys)
❯ TSLint
ESLint with error prevention only
ESLint + Airbnb config
ESLint + Standard config
ESLint + Prettier
? Pick additional lint features:
❯◉ Lint on save
◉ Lint and fix on commit
? Where do you prefer placing config for Babel, PostCSS, ESLint, etc.?
In dedicated config files
❯ In package.json
? Save this as a preset for future projects? Yes
? Save preset as: test

ハマりながらも作成しました

なんせはじめてのvueだったんで、思いっきりハマりましたorz

actionってなに?

初期値って dataに入れるの?

componentって?

まぁ、こんな感じに作っていきました。

このあたりは、またいつか。。

今回は本題のコレ↓

公開しましょう!

$ npm run build

てやると、あれこれ進んで。。。。

dist/js/chunk-vendors.25696abb.js 133.58 KiB 46.22 KiB
dist/js/app.99ef83bb.js 10.14 KiB 3.28 KiB
dist/service-worker.js 0.94 KiB 0.53 KiB
dist/precache-manifest.64ddbd44ed8f68d 0.54 KiB 0.27 KiB
3475b81ee58736b9e.js

こんな感じにファイルが作成されました。

dist配下をサーバーの公開領域にコピーして、早速ブラウザか読んでみました。

http://hogehoge/aa/index.html

 

まっ白。。。。。パニック!!!!

とにかく、index.htmlをみるとcssとはjsとかが href=/css/〜とかhref=/js/〜とかになっています。

ドキュメントルートには置かないんで、さて、どうしたものか。。。

パスを指定することができます!

わかってしまえば簡単なこと。

package.jsonがおいてあるディレクトリにvue.config.jsってファイルを作成します。

その中で指定します。

module.exports = {
  publicPath: '/hoge/app/pwa',
}

今回はこんな感じ。

あらためてnpm run buildしてください。

dist配下にパスが反映されたソースが作成されます。