node.jsvue.jsvuejs3vue-clivue-cli-4

Created a new vue project using vue/cli create but cannot serve


Last week I had nothing wrong on creating a new project and serving it, but today when I use vue/cli to create a new default project, I got a compile error when serving.

PS E:\Projects\testing> yarn serve
yarn run v1.22.5
$ vue-cli-service serve
 INFO  Starting development server...
98% after emitting CopyPlugin

 ERROR  Failed to compile with 1 error                                                                                                                                                                        下午12:22:33
 error  in ./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js

Module parse failed: Unexpected token (763:13)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| }
| class RefImpl {
>     _rawValue;
|     _shallow;
|     _value;

 @ ./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js 1:0-233 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 2:0-216 16:4-17 40:4-17 107:13-18 108:32-37 115:16-21 1958:8-13 1962:13-23 1968:35-45 1970:16-21 1973:21-31 2071:19-25 2094:8-12 2135:8-13 2210:29-34 2557:27-30 2558:26-29 2559:28-31 2905:16-29 2912:16-29 3043:28-36 3362:41-56 3378:28-33 3463:8-15 3500:32-37 3647:27-32 3823:29-34 3951:12-25 3958:12-25 4568:17-22 4592:13-18 5173:26-32 5336:8-21 5340:8-21 5755:16-20 5761:12-16 6296:27-32 6328:12-19 6338:16-23 6356:93-100 6357:15-20 6767:60-75 6768:60-75 6769:60-75 6770:59-74 6847:16-21 6997:16-21 7150:21-28 7160:8-21 7161:134-149 7162:8-21 7210:30-39 7264:8-21 7266:8-21 7314:23-38 7334:46-55 7334:56-63 7389:14-24 7576:21-26 7586:21-31 7593:24-34 7596:21-31 7624:53-58 7630:52-57 7696:48-53
 @ ./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js
 @ ./node_modules/vue/dist/vue.runtime.esm-bundler.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://192.168.1.102:8080&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

I can serve all my old projects correctly, then I try to reinstall different versions of vue/cli and nodejs, but nothing change.

currently my nodejs version: v14.17.0
vue/cli: 4.5.13

What should I do?

update

I somehow solved this error by editting reactivity.esm-bundler.js in node_modules/@vue/runtime-core/dist/

class RefImpl {
    _rawValue;
    _shallow;
    _value;
    __v_isRef = true;
    constructor(_rawValue, _shallow) {
        this._rawValue = _rawValue;
        this._shallow = _shallow;
        this._value = _shallow ? _rawValue : convert(_rawValue);
    }
    get value() {
        track(toRaw(this), "get" /* GET */, 'value');
        return this._value;
    }
    set value(newVal) {
        if (hasChanged(toRaw(newVal), this._rawValue)) {
            this._rawValue = newVal;
            this._value = this._shallow ? newVal : convert(newVal);
            trigger(toRaw(this), "set" /* SET */, 'value', newVal);
        }
    }
}

after:

class RefImpl {
    constructor(_rawValue, _shallow = false) {
        this._rawValue = _rawValue;
        this._shallow = _shallow;
        this.__v_isRef = true;
        this._value = _shallow ? _rawValue : convert(_rawValue);
    }
    get value() {
        track(toRaw(this), "get" /* GET */, 'value');
        return this._value;
    }
    set value(newVal) {
        if (hasChanged(toRaw(newVal), this._rawValue)) {
            this._rawValue = newVal;
            this._value = this._shallow ? newVal : convert(newVal);
            trigger(toRaw(this), "set" /* SET */, 'value', newVal);
        }
    }
}

I'm not sure about it, maybe this error is related to ES version?
if so, where should I configure to get things right?


Solution

  • UPDATE: Use Vue 3.1.4

    The bug is now fixed in Vue 3.1.4, so just install the newer version of vue in your project:

    npm uninstall vue
    npm i -S vue@3.1.4
    

    This is a known issue with Vue CLI 4.5.13, which installs Vue 3.1.3. A few workarounds are available.

    Workaround 1: Transpile @vue/reactivity

    // vue.config.js
    module.exports = {
      transpileDependencies: ['@vue/reactivity']
    }
    

    Workaround 2: Downgrade to Vue 3.1.2

    npm uninstall vue
    npm i -S vue@3.1.2
    

    Workaround 3: Use Vue CLI 5 (beta)

    npm i -g @vue/cli@5