Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vite4使用auto-import-resolver按需引入任一组件报错 #2841

Closed
beautycss opened this issue Jan 16, 2024 · 7 comments
Closed

vite4使用auto-import-resolver按需引入任一组件报错 #2841

beautycss opened this issue Jan 16, 2024 · 7 comments
Labels
invalid This doesn't seem right

Comments

@beautycss
Copy link

beautycss commented Jan 16, 2024

NutUI 包名

@nutui/nutui

NutUI 版本号

4.2.7

平台

h5

重现链接

https://codesandbox.io/s/nutui4-vite-demo-forked-8x7xdr?file=/vite.config.ts

重现步骤

  1. 本地基于vite4+vue3的h5新项目,运行正常,页面展示正常;
  2. 安装4.2.7版本的nutui;
  3. 在页面加了一个按钮,<nut-button>按钮</nut-button>
  4. 安装unplugin-vue-components/vite@nutui/auto-import-resolver
  5. 按照官网文档,css按需引入nutui报错。
import Components from 'unplugin-vue-components/vite'
import NutUIResolver from '@nutui/auto-import-resolver'
...
Components({
  resolvers: [
    NutuiResolve()
  ]
}),
...
  1. 加上importStyle: 'sass',sass按需引入也报错。
...
Components({
  resolvers: [
    NutUIResolver({
      importStyle: 'sass'
    })
  ]
}),
...

期望的结果是什么?

任一组件正常引入,页面能正常显示

实际的结果是什么?

css方式引入报错:

NutUIResolver()

css

sass方式引入也报错:

NutUIResolver({
  importStyle: 'sass'
})

sass

环境信息

System:
OS: macOS 14.2.1
CPU: (8) arm64 Apple M1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 18.19.0 - ~/.nvm/versions/node/v18.19.0/bin/node
npm: 10.2.3 - ~/.nvm/versions/node/v18.19.0/bin/npm
Browsers:
Chrome: 120.0.6099.216
Safari: 17.2.1
npmPackages:
@nutui/nutui: ^4.2.7 => 4.2.7

windows和mac多台电脑,nodejs版本18都是同样的问题。

其他补充信息

其他信息:

  • nodejs: 18.19.0;
  • Vue: 3.3.13;
  • NutUI: 4.2.7;
  • Vite: 4.5.1;
  • "@nutui/auto-import-resolver": "^1.0.0";
  • "unplugin-vue-components": "^0.25.2";

解决方法:

直接修改本地的@nutui/auto-import-resolver/dist/index.js文件第11行后,sass按需引入成功,改动如下:

if (importStyle === "sass") {
    - style = `${packageName}/dist/packages/${componentName.toLowerCase()}/style`;
    + style = `${packageName}/dist/packages/${componentName.toLowerCase()}/index.scss`;
  }
@eiinu
Copy link
Member

eiinu commented Jan 16, 2024

运行重现链接中的项目,未复现问题。

image

@beautycss
Copy link
Author

运行重现链接中的项目,未复现问题。

image

image

@eiinu
Copy link
Member

eiinu commented Jan 16, 2024

运行重现链接中的项目,未复现问题。
image

image

图上的错误是因为项目中没有安装 unplugin-vue-components 插件,与 issue 反馈的内容没有关系。

@beautycss
Copy link
Author

  1. vite4就是碰到这个问题,多个电脑上碰到过了。
  2. 给的demo是vite5,版本不一样。

@eiinu
Copy link
Member

eiinu commented Jan 16, 2024

  1. vite4就是碰到这个问题,多个电脑上碰到过了。
  2. 给的demo是vite5,版本不一样。

建议提供能复现的依赖版本都正确的 demo

@beautycss
Copy link
Author

beautycss commented Jan 16, 2024

运行重现链接中的项目,未复现问题。
image

image

这是没安装 unplugin-vue-components 插件的报错。

  1. codebox里没有unplugin-vue-components/vite这个包,选的一个其他的。
  2. vite4就是碰到这个问题,多个电脑上碰到过了。
  3. 给的demo是vite5,版本不一样。
  4. 我是本着负责的态度提出来,本来之前评论了,又费了不少时间重新提交了issue。基于问题1,需要本地复现,其实问题也很简单,如果仅凭在线链接来判定,那不如直接关闭好了,我就当给其他碰到同样问题的人一个解决方法。

@eiinu
Copy link
Member

eiinu commented Jan 16, 2024

运行重现链接中的项目,未复现问题。
image

image

这是没安装 unplugin-vue-components 插件的报错。

  1. codebox里没有unplugin-vue-components/vite这个包,选的一个其他的。
  2. vite4就是碰到这个问题,多个电脑上碰到过了。
  3. 给的demo是vite5,版本不一样。
  4. 我是本着负责的态度提出来,本来之前评论了,又费了不少时间重新提交了issue。基于问题1,需要本地复现,其实问题也很简单,如果仅凭在线链接来判定,那不如直接关闭好了,我就当给其他碰到同样问题的人一个解决方法。

1、这个插件的包名为 unplugin-vue-componentsunplugin-vue-component/vite 只是该包的一个子模块。
2、提供最小可复现的作用,可以参考这里: vuejs/core
3、在线链接并不是唯一的依据,在另一个 issue 里已回复过,在本地测试过 vite4 版本,没有复现问题

不同项目里的配置可能是天差地别的,yarn/npm/pnpm、js/ts、vite/vue/unplugin 版本不同都会影响,甚至可能是 tsconfig 或者 vite 的哪个配置项出了问题。提供可复现的环境能直接避开这些差异,更快的解决问题。

@eiinu eiinu added the invalid This doesn't seem right label Jan 26, 2024
@eiinu eiinu closed this as completed Jan 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
invalid This doesn't seem right
Projects
None yet
Development

No branches or pull requests

2 participants