2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Vue CLI】ファイル構成 :main.js, vueファイル編

Posted at

vueCLIの基本的なディレクトリ構造

└── test #ルート
    ├── README.md
    ├── babel.config.js #ES5への変換設定ファイル
    ├── node_modules #各種ライブラリ
    ├── package-lock.json
    ├── package.json #npmの設定ファイル => node_bodulesから使用するライブラリ
    ├── public #テンプレート
        ├── favicon.ico 
        └── index.html #main.jsのマウント先
    └── src #開発フォルダ
        ├── App.vue
        ├── assets
        │   └── logo.png
        ├── components
        │   └── HelloWorld.vue
        └── main.js #エントリーポイント 最初に読み込まれる。設定変更はvue.config.jsを作成して変更する。

main.jsの中身

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false //

new Vue({
  render: h => h(App), 
}).$mount('#app')

//render関数:htmlを関数で書ける 
// hは createElementのエイリアス(別名)

render関数についてはこの記事が詳しく載っています。Vue.jsのrender: h => h(App)について調べた

vueファイル

  • vueファイルの頭文字は大文字になる。
    • hell.vue ×
    • Hello.vue ○
  • vueファイルはファイルベースのコンポーネント。すなわち単一ファイルコンポーネント
<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
</template>

<script>
// import 名前は任意 from ファイルの場所
//アドレスの別の書き方:@/componets/some.vue => @はsrcフォルダの略
import HelloWorld from './components/HelloWorld.vue'

export default { //App.vueファイルをエキスポートしている。
  name: 'App', //コンポーネントの名前
  components: { //importしたコンポネートを登録
    HelloWorld
  }
}
</script>

<style scoped> /*scopedとつけるとcssのスコープがコンポーネント単位になる。*/
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

vue.config.js

  • vueの設定を変更するファイル。

    • package.jsonと同じ階層に配置する。
  • vue設定ファイルは内部的に存在している。

    • vue inspect > some.jsで設定ファイルを書き出せる。
  • 使用例

    • npm run buildコマンドで本番環境にコンパイルされたdistフォルダを作る。
    • コンパイルされたdist/index.htmlを開くと何も表示されない。
    • Failed to load resource というエラーがconsoleで表示されている。
      • cssやjsファイルが読み込まていない。
    • なぜか?
      • head情報を見てみる
        • <link href="/css/app.fb0c6e1c.css" rel="stylesheet">
      • cssが(ローカル上の)ルートから読み込まれてる。
      • vue.config.jsでこの設定を変更する。
    • vue.config.js
root/vue.config.js
module.exports = {
    publicPath: ''
  }

  • 改めてnpm run buildするとファイルが表示されるようになる。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?