This content originally appeared on DEV Community and was authored by t0yohei
This is the setting content that corresponds to 3
of the article below.
vue-next/packages/vue-compat at master · vuejs/vue-next · GitHub
The content is based on the assumption that you are using the webpacker v5 system.
Also, at the time of writing the article, I am using the beta of Vue 3.1.0.
Version
- rails: 6.1.3.2
- webpacker: 5.4.0
- vue: 3.1.0-beta.7
- @vue/compat: 3.1.0-beta.1
- vue-loader: 16.2.0
Preparation
Besed on the content of vue-next/packages/vue-compat at master · vuejs/vue-next · GitHub, we will update vue-loader
to ^16.0.0
and vue
, @vue/compat
to the 3.1
series.
Modify package.json
as shown below and run yarn install
or npm install
.
"dependencies": {
"vue": "^3.1.0-0",
"@vue/compat": "^3.1.0-0",
"vue-loader": "^16.0.0",
...
},
Modify webpack settings
Modify config/webpack/loaders/vue.js
and config/webpack /environment.js
as follows (if config/webpack/loaders/vue.js
has not been created, create a new one).
config/webpack/loaders/vue.js
module.exports = {
test: /\.vue(\.erb)?$/,
use: [{
loader: 'vue-loader',
options: {
compilerOptions: {
compatConfig: {
MODE: 2,
},
},
},
}],
};
config/webpack/environment.js
const { environment } = require('@rails/webpacker');
const { VueLoaderPlugin } = require('vue-loader');
const vue = require('./loaders/vue');
environment.config.merge({
resolve: {
alias: {
vue: '@vue/compat',
},
},
});
environment.plugins.prepend('VueLoaderPlugin', new VueLoaderPlugin());
environment.loaders.prepend('vue', vue);
module.exports = environment;
Sample commit: Update vue to 3 1 by t0yohei · Pull Request #70 · t0yohei/rails-vue-app · GitHub
Confirmation of operation
If the settings are correct, when you run bin/webpack
or bin/webpacker-dev-server
, you will get warnings and errors like the attached image.
Next To Do
After changing the settings of the webpack, it will be a task to crush the warnings and errors that appear in the build.
For the subsequent work, refer to 4
and later below.
vue-next/packages/vue-compat at master · vuejs/vue-next · GitHub
When all the work is completed successfully, the migration to Vue 3.1 is complete.
Appendix: If you have TypeScript installed
If you want to get type support from the implementation of import Vue from'vue'
, it seems that you need the following settings in shim.d.ts
.
declare module 'vue' {
import { CompatVue } from '@vue/runtime-dom'
const Vue: CompatVue
export default Vue
}
This content originally appeared on DEV Community and was authored by t0yohei
t0yohei | Sciencx (2021-06-05T13:19:07+00:00) Webpack settings when upgrading Vue2 to Vue3.1 for Rails application. Retrieved from https://www.scien.cx/2021/06/05/webpack-settings-when-upgrading-vue2-to-vue3-1-for-rails-application/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.