Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
Vue 3 app broken/will not compile following package update. Zero errors prior to update.
I am receiving the following node console errors.
Errors
"export 'createElementBlock' (imported as '_createElementBlock') was not found in 'vue'
"export 'createElementVNode' (imported as '_createElementVNode') was not found in 'vue'
"export 'normalizeClass' (imported as '_normalizeClass') was not found in 'vue'
More information...
:class
throws the normalizeClass error.
Browser Error
Uncaught TypeError: Object(...) is not a function
at eval (App.vue?3dfd:2)
at Module../node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader-v16/dist/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader-v16/dist/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90 (app.js:1091)
at __webpack_require__ (app.js:854)
at fn (app.js:151)
at eval (App.vue?2083:1)
at Module../src/App.vue?vue&type=template&id=7ba5bd90 (app.js:1310)
at __webpack_require__ (app.js:854)
at fn (app.js:151)
at eval (App.vue?eabf:1)
at Module../src/App.vue (app.js:1274)
package.json
"dependencies": {
"@stripe/stripe-js": "^1.17.0",
"core-js": "^3.16.1",
"date-fns": "^2.23.0",
"firebase": "^8.9.1",
"register-service-worker": "^1.7.2",
"vue": "^3.0.0",
"vue-router": "^4.0.0-0",
"vuex": "^4.0.0-0"
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.13",
"@vue/cli-plugin-pwa": "~4.5.13",
"@vue/cli-plugin-router": "~4.5.13",
"@vue/cli-plugin-typescript": "~4.5.13",
"@vue/cli-plugin-vuex": "~4.5.13",
"@vue/cli-service": "~4.5.13",
"@vue/compiler-sfc": "^3.2.2",
"sass": "^1.37.5",
"sass-loader": "^10",
"typescript": "~4.3.5"
Recent Upgrades
@vue/cli-plugin-babel ~4.5.0 → ~4.5.13
@vue/cli-plugin-pwa ~4.5.0 → ~4.5.13
@vue/cli-plugin-router ~4.5.0 → ~4.5.13
@vue/cli-plugin-typescript ~4.5.0 → ~4.5.13
@vue/cli-plugin-vuex ~4.5.0 → ~4.5.13
@vue/cli-service ~4.5.0 → ~4.5.13
@vue/compiler-sfc ^3.0.0 → ^3.2.2
sass ^1.26.5 → ^1.37.5
sass-loader ^8.0.2 → ^10.2.0
typescript ~4.1.5 → ~4.3.5
@stripe/stripe-js ^1.16.0 → ^1.17.0
core-js ^3.6.5 → ^3.16.1
firebase ^8.6.7 → ^8.9.1
register-service-worker ^1.7.1 → ^1.7.2
–
Yesterday, I helped my friend solve this problem. She is exactly the same as what you encountered.
solution:
Delete node_modules/
Delete the package-lock.json file
Modify the dependency in package.json: "@vue/compiler-sfc": "3.0.4"
Reinstall it: npm install
This problem is caused by the wrong version of the "@vue/compiler-sfc" package. I haven't looked at the specific reason. I am currently using version 3.0.4, and a subsequent version will cause build errors. So the version is locked in package.json.
update:
I am ashamed of my questioning @vue/compiler-sfc. In fact, I believe that this time I found the problem.
It should be a project used by a friend, which applied webpack's DLL technology, but because the package version was not locked, the DLL file was not updated after the node_modules package was updated, resulting in incorrect package index pointing. There may be other factors. In short, this person is too weak in technology.
About dll configuration.
When the package has not changed, we do not need to repackage those dependencies such as vue, vue-router, etc. when packaging.
This time the situation is:
When the compiler-sfc is version 3.1.x, the dll_v1 file has been generated once,
One time add package, updated compiler-sfc to 3.2.x
During yarn build, webpack packaged the source code according to dll_v1, which failed.
The colleague who happened to be a friend is too savvy. I guess it was copied from a warehouse elsewhere and changed it, so I don’t know what a dll is? Therefore, no new dll_v2 is generated.
Solution: Generate a new dll file and just build it.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.