Vue CLI から学ぶセットアップ¶
Vue のプロジェクトを作成する際に、何を選んだら良いのか分からない。あとで設定を変えたいときにどうしたら分からない。を解消するため、色々設定を変えて作ることで調べてみた。Vue CLI のアップデートにより変わっていくかもしれないので注意。
基本¶
Vue CLI をインストールする。
$ npm install -g @vue/cli
CUI でプロジェクトを作成する場合
$ vue create (project-name)
GUI でプロジェクトを作成する場合
$ vue ui
Preset & Options¶
Vue CLI でプロジェクトを作成する際の選択肢およびデフォルトプリセット設定の一覧。
Selection | Options | |
---|---|---|
Package manager | ●npm ○yarn ○pnpm | |
Vue version | ●2 ○3 | |
Babel | ☑Use Babel | |
TypeScript | □Use TypeScript | □Use class-style component syntax □Use Babel alongside TypeScript |
Progressive Web App (PWA) Support | □PWA Support | |
Router | □Use Router | □Use history mode |
Vuex | □Use Vuex | |
CSS Pre-processors | ●N/A ○Sass/SCSS (with dart-sass) ○Sass/SCSS (with node-sass) ○Less ○Stylus |
|
Linter / Formatter | ○N/A ●ESLint with prevention only ○ESLint + Airbnb config ○ESLint + Standard config ○ESLint + Pretieer |
☑Lint on save □Lint and fix on commit |
Unit Testing | ●N/A ○Mocha + Chai ○Jest |
|
E2E Testing | ●N/A ○Cypress (Chrome only) ○Nightwatch (WebDrvier-based) ○WebdriverIO (WebDriver/DevTools based) |
|
Use config files | □Use config files |
Package Manager¶
以下から選択できる。CLI の場合は vue create --packageManager
オプションで指定する。
package.json は共通で、おそらくロックファイルが異なるだけ。
乗り換える場合はそれぞれのツールで npm|yarn|pnpm install
してロックファイルを作り直せば良い(はず)。
TypeScript¶
TypeScript > Use class-style component syntax¶
yarn add vue-class-component
Vue コンポーネント内は以下のように書き換える。
<script lang="ts">
import { Options, Vue } from 'vue-class-component';
@Options({
components: {
HelloWorld,
},
})
export default class Home extends Vue {}
</script>
tsconfig.json
"experimentalDecorators": true,
Progressive Web App (PWA) Support¶
手動で追加する場合¶
PWA 用のパッケージをインストールする。
yarn add register-service-worker
yarn add --dev @vue/cli-plugin-pwa
src/main.js に以下を追加する。
import { createApp } from 'vue'
import App from './App.vue'
+import './registerServiceWorker'
createApp(App).mount('#app')
Use config files¶
有効にすると、以下の設定ファイルが生成される。無効にした場合は、同様の設定が package.json に記述される。
- .eslintrc.js