1
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.

rails6系+webpackでvue.js3を使う

Posted at

はじめに

rails6系webpackありの環境vue.jsをrails webpacker:install:vueで入れたときに
コケにこけたので、成功した手順を記載しようと思います。

環境

ruby : 3.0.0
rails : 6.1.5
webpack: 5.4.3
yarn : 1.22.17

原因

webpacker起動するとエラーが。
私の場合、vueのバージョンが3系なのに、作成されるファイルが2系の書き方となっている様子でした。
スクリーンショット 2022-04-03 16.44.21.png
下記の方を参考に書き換えました。
https://qiita.com/bumpfuji10/items/40cc7e6a2de2d15d92ca

手順

アプリは作成して、 Yay! You’re on Rails!が表示できている前提でいきます。

1.vueインストール

コンソール
$ rails webpacker:install:vue

2. 書き換え

javascript/webpack/environment.js
const { environment } = require('@rails/webpacker')
const { VueLoaderPlugin } = require('vue-loader')

environment.plugins.prepend(
     'VueLoaderPlugin',
     new VueLoaderPlugin()
)

environment.loaders.prepend('vue',{
     test: /\.vue$/,
     use: [{
         loader: 'vue-loader'
     }]
})

const { DefinePlugin } = require('webpack')
environment.plugins.prepend(
    'Define',
    new DefinePlugin({
        __VUE_OPTIONS_API__: true,
        __VUE_PROD_DEVTOOLS__: true
    })
)

module.exports = environment
app/javascript/packs/hello_vue.js
import { createApp } from "vue";
import App from "../app.vue";

document.addEventListener("DOMContentLoaded", () => {
    const app = createApp(App);
    app.mount("#app")
});

3. サンプルページ作成

コンソール
$ rails g controller home index

viewに読み込みを記載

app/views/home/index.html.erb
<div id="app"></div>
<%= javascript_pack_tag 'hello_vue.js' %> 

home/indexにアクセス

スクリーンショット 2022-04-03 17.20.08.png

初学者のため、至らぬ点もあるかと思いますが、
ご覧いただき、ありがとうございました!

1
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
1
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?