当前位置:   article > 正文

vue3在安装element-plus后使用官网提供的自动导入组件在webpack 下报错_unplugin-vue-components/webpack is not a function

unplugin-vue-components/webpack is not a function

按需导入#

您需要使用额外的插件来导入要使用的组件。

自动导入推荐#

首先你需要安装unplugin-vue-components 和 unplugin-auto-import这两款插件

npm install -D unplugin-vue-components unplugin-auto-import

安装完成后项目的目录下会多出两个文件分别是:auto-imports.d.ts文件和components.d.ts文件

然后把下列代码插入到你的 Vite 或 Webpack 的配置文件中

Vite#
  1. // vite.config.ts
  2. import { defineConfig } from 'vite'
  3. import AutoImport from 'unplugin-auto-import/vite'
  4. import Components from 'unplugin-vue-components/vite'
  5. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  6. export default defineConfig({
  7. // ...
  8. plugins: [
  9. // ...
  10. AutoImport({
  11. resolvers: [ElementPlusResolver()],
  12. }),
  13. Components({
  14. resolvers: [ElementPlusResolver()],
  15. }),
  16. ],
  17. })
Webpack#
  1. // webpack.config.js
  2. const AutoImport = require('unplugin-auto-import/webpack')
  3. const Components = require('unplugin-vue-components/webpack')
  4. const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
  5. module.exports = {
  6. // ...
  7. plugins: [
  8. AutoImport({
  9. resolvers: [ElementPlusResolver()],
  10. }),
  11. Components({
  12. resolvers: [ElementPlusResolver()],
  13. }),
  14. ],
  15. }

如果是在使用vue3+ts的情况下还需要配置一下这个,就是在tsconfig.json文件中指定的位置加入如下代码:

  1. "include": [
  2. "src/**/*.ts",
  3. "src/**/*.tsx",
  4. "src/**/*.vue",
  5. "tests/**/*.ts",
  6. "tests/**/*.tsx",
  7. "auto-imports.d.ts",
  8. "components.d.ts"
  9. ],

想了解更多打包 (RollupVue CLI) 和配置工具,请参考 unplugin-vue-components 和 unplugin-auto-import

使用时出现的问题如下:

我在安装

npm install -D unplugin-vue-components unplugin-auto-import

后在到vue.config.js文件中配置如下代码后运行npm run serve就报错了

  1. const { defineConfig } = require('@vue/cli-service')
  2. const AutoImport = require('unplugin-auto-import/webpack')
  3. const Components = require('unplugin-vue-components/webpack')
  4. const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
  5. console.log("process.env.outputDir",process.env.outputDir)
  6. module.exports = defineConfig({
  7. transpileDependencies: true,
  8. outputDir: process.env.outputDir,
  9. // plugins: [
  10. // AutoImport({
  11. // resolvers: [ElementPlusResolver()],
  12. // }),
  13. // Components({
  14. // resolvers: [ElementPlusResolver()],
  15. // }),
  16. // ],
  17. // configureWebpack: {
  18. // plugins: [
  19. // require('unplugin-auto-import/webpack')({ /* options */ }),
  20. // require('unplugin-vue-components/webpack')({ /* options */ }),
  21. // ],
  22. // }
  23. configureWebpack: {
  24. plugins: [
  25. // ...
  26. AutoImport({
  27. resolvers: [ElementPlusResolver()],
  28. }),
  29. Components({
  30. resolvers: [ElementPlusResolver()],
  31. }),
  32. ],
  33. }
  34. })

Vue3使用自动导入方式引入Element-plus报错:Error: Cannot find module ‘node:module‘

报错信息如下:

  1. ERROR Error: Cannot find module 'node:module'
  2. Require stack:
  3. - E:\Astudy\vue3-ts-cms\node_modules\mlly\dist\index.cjs
  4. - E:\Astudy\vue3-ts-cms\node_modules\unplugin-auto-import\node_modules\unimport\dist\shared\unimport.64bbcff1.cjs
  5. - E:\Astudy\vue3-ts-cms\node_modules\unplugin-auto-import\node_modules\unimport\dist\index.cjs
  6. - E:\Astudy\vue3-ts-cms\node_modules\unplugin-auto-import\dist\chunk-GOGBRDVI.cjs
  7. - E:\Astudy\vue3-ts-cms\node_modules\unplugin-auto-import\dist\chunk-SSVXEZ6E.cjs
  8. - E:\Astudy\vue3-ts-cms\node_modules\unplugin-auto-import\dist\webpack.cjs
  9. - E:\Astudy\vue3-ts-cms\vue.config.js
  10. - E:\Astudy\vue3-ts-cms\node_modules\@vue\cli-shared-utils\lib\module.js
  11. - E:\Astudy\vue3-ts-cms\node_modules\@vue\cli-shared-utils\index.js
  12. - E:\Astudy\vue3-ts-cms\node_modules\@vue\cli-service\bin\vue-cli-service.js
  13. Error: Cannot find module 'node:module'
  14. 原文链接:https://blog.csdn.net/weixin_45732235/article/details/129206260

  1. Error: Cannot find module 'node:module'
  2. Require stack:
  3. - D:\ruanjian\nvm\v19.0.0\xiangmu\niu789\niu789\node_modules\_mlly@1.1.0@mlly\dist\index.cjs
  4. - D:\ruanjian\nvm\v19.0.0\xiangmu\niu789\niu789\node_modules\_unimport@1.2.0@unimport\dist\shared\unimport.7b88c06e.cjs
  5. - D:\ruanjian\nvm\v19.0.0\xiangmu\niu789\niu789\node_modules\_unimport@1.2.0@unimport\dist\addons.cjs
  6. - D:\ruanjian\nvm\v19.0.0\xiangmu\niu789\niu789\node_modules\_unplugin-auto-import@0.12.1@unplugin-auto-import\dist\chunk-KU62ZDK5.cjs
  7. - D:\ruanjian\nvm\v19.0.0\xiangmu\niu789\niu789\node_modules\_unplugin-auto-import@0.12.1@unplugin-auto-import\dist\webpack.cjs
  8. - D:\ruanjian\nvm\v19.0.0\xiangmu\niu789\niu789\vue.config.js
  9. ————————————————
  10. 版权声明:本文为CSDN博主「Technology_hands」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
  11. 原文链接:https://blog.csdn.net/Technology_hands/article/details/128719150

解决方法:切换至更高版本的node即可

 还有一种可能是修改element-plus的版本或者修改unplugin-auto-import和unplugin-vue-components两个插件的版本:

在使用webpack 运行vue3 elmentui 的时候报错Error: Cannot find module 'node:module'

在加入vue3 elmentui plus 这行代码的时候 出现了报错

最后发现问题是 elment plus 和 自动加载方法 的版本不适应的问题

解决方法是 根据视频增加精确版本的包

"element-plus": "^2.1.11",

"unplugin-auto-import": "^0.7.1",

"unplugin-vue-components": "^0.19.3"
————————————————
版权声明:本文为CSDN博主「Technology_hands」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Technology_hands/article/details/128719150

还发现了一个问题就是用unplugin-vue-components 和 unplugin-auto-import这两款插件,按需主动导入element-plus组件时,他只能帮助我们导入template标签中使用的组件,项js中要使用弹框之类的组件,这是我们安装的这两个插件就不能给我们自动导入了,就需要我们手动自己导入组件了代码如下:(如下图需要手动导入组件)

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号