Uncaught TypeError: 无法读取未定义的属性(读取 ‘install’)

huangapple go评论122阅读模式
英文:

Uncaught TypeError: Cannot read properties of undefined (reading 'install')

问题

这个错误的意思是什么,为什么有时会发生?

> VM3327 vue.esm.js:5829 未捕获的TypeError: 无法读取未定义的属性(读取'install')
> 在 Vue.use(VM3327 vue.esm.js:5829:31)
> 在 eval(VM3493 index.js:10:45)
> 在./src/router/index.js(VM3317 chat.js:173:1)
> 在__webpack_require__(VM3317 chat.js:1973:42)
> 在 eval(VM3326 main.js:5:65)
> 在./src/main.js(VM3317 chat.js:162:1)
> 在__webpack_require__(VM3317 chat.js:1973:42)
> 在VM3317 chat.js:2037:37
> 在VM3317 chat.js:2039:12
Vue.use @ VM3327 vue.esm.js:5829
eval @ VM3493 index.js:10
./src/router/index.js @ VM3317 chat.js:173
webpack_require @ VM3317 chat.js:1973
eval @ VM3326 main.js:5
./src/main.js @ VM3317 chat.js:162
webpack_require @ VM3317 chat.js:1973 (anonymous) @ VM3317 chat.js:2037 (anonymous) @ VM3317 chat.js:2039

我在一个Django项目中使用了vuejs。

package.json

  1. {
  2. "name": "vue-chat-app-two",
  3. "version": "0.1.0",
  4. "private": true,
  5. "description": "## Project setup ``` yarn install ```",
  6. "author": "",
  7. "scripts": {
  8. "serve": "vue-cli-service serve",
  9. "build": "webpack --mode production",
  10. "lint": "vue-cli-service lint",
  11. "dev": "webpack-dev-server --mode development --hot",
  12. "start": "concurrently \"python3 manage.py runserver\" \"npm run dev\""
  13. },
  14. "main": "babel.config.js",
  15. "dependencies": {
  16. "axios": "^1.4.0",
  17. "core-js": "^3.30.2",
  18. "vue": "^3.3.4",
  19. "vue-native-websocket": "^2.0.15",
  20. "vue-router": "^4.2.2",
  21. "vue-scrollto": "^2.20.0"
  22. },
  23. "devDependencies": {
  24. "@babel/core": "^7.22.1",
  25. "@babel/eslint-parser": "^7.21.8",
  26. "@babel/preset-env": "^7.22.4",
  27. "@vue/cli-plugin-babel": "~5.0.0",
  28. "@vue/cli-plugin-eslint": "~5.0.0",
  29. "@vue/cli-service": "~5.0.0",
  30. "babel-loader": "^9.1.2",
  31. "concurrently": "^8.1.0",
  32. "css-loader": "^6.8.1",
  33. "eslint": "^7.32.0",
  34. "eslint-plugin-vue": "^8.7.1",
  35. "file-loader": "^6.2.0",
  36. "sass": "^1.63.2",
  37. "sass-loader": "^10.4.1",
  38. "style-loader": "^3.3.3",
  39. "vue-cli-plugin-vuetify": "~2.5.8",
  40. "vue-loader": "^15.10.1",
  41. "vue-template-compiler": "^2.7.14",
  42. "webpack": "^5.86.0",
  43. "webpack-bundle-tracker": "^1.8.1",
  44. "webpack-cli": "^5.1.4",
  45. "webpack-dev-server": "^4.15.0"
  46. },
  47. "eslintConfig": {
  48. "root": true,
  49. "env": {
  50. "node": true
  51. },
  52. "extends": [
  53. "plugin:vue/essential",
  54. "eslint:recommended"
  55. ],
  56. "parserOptions": {
  57. "parser": "@babel/eslint-parser"
  58. },
  59. "rules": {}
  60. },
  61. "browserslist": [
  62. "> 1%",
  63. "last 2 versions",
  64. "not dead"
  65. ],
  66. "keywords": [],
  67. "license": "ISC"
  68. }

当我在vuejs终端中运行以下命令时:npx webpack --config webpack.config.js,我得到类似以下的结果:

> [webpack-cli] Error:
>
> Vue packages version mismatch:
>
> - vue@3.3.4 (.../vue-chat-app-two/node_modules/vue/index.js)
> - vue-template-compiler@2.7.14 (.../vue-chat-app-two/node_modules/vue-template-compiler/package.json)
>
> 这可能会导致工作不正确。确保同时使用相同的版本。如果您使用的是vue-loader@>=10.0,只需更新vue-template-compiler。如果您使用的是vue-loader@<10.0或vueify,则重新安装vue-loader/vueify应该会升级vue-template-compiler到最新版本。
>
> ```lang-none
> at Object. (.../vue-chat-app-two/node_modules/vue-template-compiler/index.js:10:9)
> at Module._compile (node:internal/modules/cjs/loader:1103:14)
> at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
> at Module.load (node:internal/modules/cjs/loader:981:32)
> at Function.Module._load (node:internal/modules/cjs/loader:822:12)
> at Module.require (node:internal/modules/cjs/loader:1005:19)
> at require (node:internal/modules/cjs/helpers:102:18)
> at loadFromContext (.../vue-chat-app-two/node_modules/vue-loader/lib/compiler.js:30:10)
> at loadTemplateCompiler (.../vue-chat-app-two/node_modules/vue-loader/lib/compiler.js:37:12)
> at exports.resolveCompiler (.../vue-chat-app-two/node_modules/vue-loader/lib/compiler.js:25:23)
> at VueLoaderPlugin.apply (.../vue-chat-app-two/node_modules/vue-loader/lib/plugin-webpack5.js:144:22)
> at createCompiler (.../vue-chat-app-two/node_modules/webpack/lib/webpack.js:73:12)
> at create (.../vue-chat-app-two/node_modules/webpack/lib/webpack.js:134:16)
> at webpack (.../vue-chat-app-two/node_modules/webpack/lib/webpack.js:142:47)
> at WebpackCLI.f [as webpack] (.../vue-chat-app-two/node_modules/webpack/lib/index.js:72:16)
> at WebpackCLI.createCompiler (.../vue-chat-app-two/node_modules/webpack-cli/lib/webpack

英文:

What does this error mean and why does it sometimes happen?

> VM3327 vue.esm.js:5829 Uncaught TypeError: Cannot read properties of
> undefined (reading 'install')
> at Vue.use (VM3327 vue.esm.js:5829:31)
> at eval (VM3493 index.js:10:45)
> at ./src/router/index.js (VM3317 chat.js:173:1)
> at webpack_require (VM3317 chat.js:1973:42)
> at eval (VM3326 main.js:5:65)
> at ./src/main.js (VM3317 chat.js:162:1)
> at webpack_require (VM3317 chat.js:1973:42)
> at VM3317 chat.js:2037:37
> at VM3317 chat.js:2039:12 Vue.use @ VM3327 vue.esm.js:5829 eval @ VM3493 index.js:10 ./src/router/index.js @ VM3317 chat.js:173
> webpack_require @ VM3317 chat.js:1973 eval @ VM3326 main.js:5 ./src/main.js @ VM3317 chat.js:162
> webpack_require @ VM3317 chat.js:1973 (anonymous) @ VM3317 chat.js:2037 (anonymous) @ VM3317 chat.js:2039

I'm using vuejs in a django project.

package.json

  1. {
  2. &quot;name&quot;: &quot;vue-chat-app-two&quot;,
  3. &quot;version&quot;: &quot;0.1.0&quot;,
  4. &quot;private&quot;: true,
  5. &quot;description&quot;: &quot;## Project setup ``` yarn install ```&quot;,
  6. &quot;author&quot;: &quot;&quot;,
  7. &quot;scripts&quot;: {
  8. &quot;serve&quot;: &quot;vue-cli-service serve&quot;,
  9. &quot;build&quot;: &quot;webpack --mode production&quot;,
  10. &quot;lint&quot;: &quot;vue-cli-service lint&quot;,
  11. &quot;dev&quot;: &quot;webpack-dev-server --mode development --hot&quot;,
  12. &quot;start&quot;: &quot;concurrently \&quot;python3 manage.py runserver\&quot; \&quot;npm run dev\&quot;&quot;
  13. },
  14. &quot;main&quot;: &quot;babel.config.js&quot;,
  15. &quot;dependencies&quot;: {
  16. &quot;axios&quot;: &quot;^1.4.0&quot;,
  17. &quot;core-js&quot;: &quot;^3.30.2&quot;,
  18. &quot;vue&quot;: &quot;^3.3.4&quot;,
  19. &quot;vue-native-websocket&quot;: &quot;^2.0.15&quot;,
  20. &quot;vue-router&quot;: &quot;^4.2.2&quot;,
  21. &quot;vue-scrollto&quot;: &quot;^2.20.0&quot;
  22. },
  23. &quot;devDependencies&quot;: {
  24. &quot;@babel/core&quot;: &quot;^7.22.1&quot;,
  25. &quot;@babel/eslint-parser&quot;: &quot;^7.21.8&quot;,
  26. &quot;@babel/preset-env&quot;: &quot;^7.22.4&quot;,
  27. &quot;@vue/cli-plugin-babel&quot;: &quot;~5.0.0&quot;,
  28. &quot;@vue/cli-plugin-eslint&quot;: &quot;~5.0.0&quot;,
  29. &quot;@vue/cli-service&quot;: &quot;~5.0.0&quot;,
  30. &quot;babel-loader&quot;: &quot;^9.1.2&quot;,
  31. &quot;concurrently&quot;: &quot;^8.1.0&quot;,
  32. &quot;css-loader&quot;: &quot;^6.8.1&quot;,
  33. &quot;eslint&quot;: &quot;^7.32.0&quot;,
  34. &quot;eslint-plugin-vue&quot;: &quot;^8.7.1&quot;,
  35. &quot;file-loader&quot;: &quot;^6.2.0&quot;,
  36. &quot;sass&quot;: &quot;^1.63.2&quot;,
  37. &quot;sass-loader&quot;: &quot;^10.4.1&quot;,
  38. &quot;style-loader&quot;: &quot;^3.3.3&quot;,
  39. &quot;vue-cli-plugin-vuetify&quot;: &quot;~2.5.8&quot;,
  40. &quot;vue-loader&quot;: &quot;^15.10.1&quot;,
  41. &quot;vue-template-compiler&quot;: &quot;^2.7.14&quot;,
  42. &quot;webpack&quot;: &quot;^5.86.0&quot;,
  43. &quot;webpack-bundle-tracker&quot;: &quot;^1.8.1&quot;,
  44. &quot;webpack-cli&quot;: &quot;^5.1.4&quot;,
  45. &quot;webpack-dev-server&quot;: &quot;^4.15.0&quot;
  46. },
  47. &quot;eslintConfig&quot;: {
  48. &quot;root&quot;: true,
  49. &quot;env&quot;: {
  50. &quot;node&quot;: true
  51. },
  52. &quot;extends&quot;: [
  53. &quot;plugin:vue/essential&quot;,
  54. &quot;eslint:recommended&quot;
  55. ],
  56. &quot;parserOptions&quot;: {
  57. &quot;parser&quot;: &quot;@babel/eslint-parser&quot;
  58. },
  59. &quot;rules&quot;: {}
  60. },
  61. &quot;browserslist&quot;: [
  62. &quot;&gt; 1%&quot;,
  63. &quot;last 2 versions&quot;,
  64. &quot;not dead&quot;
  65. ],
  66. &quot;keywords&quot;: [],
  67. &quot;license&quot;: &quot;ISC&quot;
  68. }

When I do in vuejs terminal: npx webpack --config webpack.config.js
I get something like this:

> [webpack-cli] Error:
>
> Vue packages version mismatch:
>
> - vue@3.3.4 (.../vue-chat-app-two/node_modules/vue/index.js)
> - vue-template-compiler@2.7.14 (.../vue-chat-app-two/node_modules/vue-template-compiler/package.json)
>
> This may cause things to work incorrectly. Make sure to use the same
> version for both. If you are using vue-loader@>=10.0, simply update
> vue-template-compiler. If you are using vue-loader@<10.0 or vueify,
> re-installing vue-loader/vueify should bump vue-template-compiler to
> the latest.
>
> lang-none
&gt; at Object.&lt;anonymous&gt; (.../vue-chat-app-two/node_modules/vue-template-compiler/index.js:10:9)
&gt; at Module._compile (node:internal/modules/cjs/loader:1103:14)
&gt; at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
&gt; at Module.load (node:internal/modules/cjs/loader:981:32)
&gt; at Function.Module._load (node:internal/modules/cjs/loader:822:12)
&gt; at Module.require (node:internal/modules/cjs/loader:1005:19)
&gt; at require (node:internal/modules/cjs/helpers:102:18)
&gt; at loadFromContext (.../vue-chat-app-two/node_modules/vue-loader/lib/compiler.js:30:10)
&gt; at loadTemplateCompiler (.../vue-chat-app-two/node_modules/vue-loader/lib/compiler.js:37:12)
&gt; at exports.resolveCompiler (.../vue-chat-app-two/node_modules/vue-loader/lib/compiler.js:25:23)
&gt; at VueLoaderPlugin.apply (.../vue-chat-app-two/node_modules/vue-loader/lib/plugin-webpack5.js:144:22)
&gt; at createCompiler (.../vue-chat-app-two/node_modules/webpack/lib/webpack.js:73:12)
&gt; at create (.../vue-chat-app-two/node_modules/webpack/lib/webpack.js:134:16)
&gt; at webpack (.../vue-chat-app-two/node_modules/webpack/lib/webpack.js:142:47)
&gt; at WebpackCLI.f [as webpack] (.../vue-chat-app-two/node_modules/webpack/lib/index.js:72:16)
&gt; at WebpackCLI.createCompiler (.../vue-chat-app-two/node_modules/webpack-cli/lib/webpack-cli.js:1785:29)
&gt;


I tried @Ewan Reveille's answer:

I changed vue-template-compilerto 3.3.4 instead of 2.7.14, then I did npm install.

I got something like this in the terminal:

> npm WARN ERESOLVE overriding peer dependency npm WARN While resolving:
> vue-chat-app-two@0.1.0 npm WARN Found: vue-template-compiler@2.7.14
> npm WARN node_modules/vue-template-compiler npm WARN dev
> vue-template-compiler@"^3.3.4" from the root project npm WARN 1 more
> (@vue/cli-service) npm WARN npm WARN Could not resolve dependency:
> npm WARN peerOptional vue-template-compiler@"^2.0.0" from
> @vue/cli-service@5.0.8 npm WARN node_modules/@vue/cli-service npm WARN
> dev @vue/cli-service@"~5.0.0" from the root project npm WARN 4 more
> (@vue/cli-plugin-babel, @vue/cli-plugin-eslint, ...) npm WARN ERESOLVE
> overriding peer dependency npm WARN While resolving:
> vue-chat-app-two@0.1.0 npm WARN Found: vue-template-compiler@2.7.14
> npm WARN node_modules/vue-template-compiler npm WARN dev
> vue-template-compiler@"^3.3.4" from the root project npm WARN 1 more
> (@vue/cli-service) npm WARN npm WARN Could not resolve dependency:
> npm WARN peerOptional vue-template-compiler@"^2.0.0" from
> @vue/cli-service@5.0.8 npm WARN node_modules/@vue/cli-service npm WARN
> dev @vue/cli-service@"~5.0.0" from the root project npm WARN 4 more
> (@vue/cli-plugin-babel, @vue/cli-plugin-eslint, ...) npm WARN ERESOLVE
> overriding peer dependency npm WARN While resolving:
> vue-chat-app-two@0.1.0 npm WARN Found: vue-template-compiler@2.7.14
> npm WARN node_modules/vue-template-compiler npm WARN dev
> vue-template-compiler@"^3.3.4" from the root project npm WARN 1 more
> (@vue/cli-service) npm WARN npm WARN Could not resolve dependency:
> npm WARN peerOptional vue-template-compiler@"^2.0.0" from
> @vue/cli-service@5.0.8 npm WARN node_modules/@vue/cli-service npm WARN
> dev @vue/cli-service@"~5.0.0" from the root project npm WARN 4 more
> (@vue/cli-plugin-babel, @vue/cli-plugin-eslint, ...) npm ERR! code
> ETARGET npm ERR! notarget No matching version found for
> vue-template-compiler@^3.3.4. npm ERR! notarget In most cases you or
> one of your dependencies are requesting npm ERR! notarget a package
> version that doesn't exist.
>
> npm ERR! A complete log of this run can be found in: npm ERR!
> .../.npm/_logs/2023-06-08T10_51_43_433Z-debug-0.log


Update 9 June 2023

webpack.config.js:

  1. const path = require(&#39;path&#39;);
  2. const { VueLoaderPlugin } = require(&#39;vue-loader&#39;);
  3. const BundleTracker = require(&#39;webpack-bundle-tracker&#39;);
  4. module.exports = {
  5. mode: &#39;development&#39;,
  6. context: __dirname,
  7. entry: &#39;./src/main.js&#39;,
  8. output: {
  9. path: path.resolve(__dirname, &#39;../static/js&#39;),
  10. publicPath: &#39;/static/js/&#39;,
  11. filename: &#39;chat.js&#39;,
  12. },
  13. plugins: [
  14. new VueLoaderPlugin(),
  15. new BundleTracker({ filename: &#39;../vue-chat-app-two/webpack-stats.json&#39; }),
  16. ],
  17. module: {
  18. rules: [
  19. {
  20. test: /\.vue$/,
  21. loader: &#39;vue-loader&#39;,
  22. options: {
  23. esModule: false
  24. },
  25. },
  26. {
  27. test: /\.js$/,
  28. loader: &#39;babel-loader&#39;,
  29. exclude: /node_modules/,
  30. },
  31. {
  32. test: /\.css$/,
  33. use: [&#39;vue-style-loader&#39;, &#39;css-loader&#39;],
  34. },
  35. ],
  36. },
  37. resolve: {
  38. alias: {
  39. vue$: &#39;vue/dist/vue.esm.js&#39;,
  40. },
  41. extensions: [&#39;.*&#39;,&#39;.js&#39;,&#39;.vue&#39;,&#39;.json&#39;]
  42. },
  43. };

答案1

得分: 1

错误可能是由于Vue.js版本与其模板编译器版本不兼容引起的。要纠正这个问题,您应该将"devDependencies"中的这一行修改为:"vue-template-compiler": "^3.3.4",而不是"vue-template-compiler": "^2.7.14"。
然后,在终端中运行命令"npm install"以更新您的依赖项。
希望这有所帮助!

英文:

The error probably comes from the incompatibility between Vue.js version and its template compiler version. To correct that, you should modify the line : "vue-template-compiler": "^2.7.14", in "devDependencies" by the line "vue-template-compiler": "^3.3.4",.
Then, launch the command "npm install" in the terminal to update your dependencies.
I hope this helped !

huangapple
  • 本文由 发表于 2023年6月8日 18:04:28
  • 转载请务必保留本文链接:https://go.coder-hub.com/76430736.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定