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

Cannot use "import { detectIE } from 'balm-ui';" #25

Closed
XiaoPangxie732 opened this issue Nov 6, 2020 · 5 comments
Closed

Cannot use "import { detectIE } from 'balm-ui';" #25

XiaoPangxie732 opened this issue Nov 6, 2020 · 5 comments

Comments

@XiaoPangxie732
Copy link

balm-ui版本9.0.2,脚手架vite,使用import { detectIE } from 'balm-ui';时浏览器控制台报错

// 一段使用了import { detectIE } from 'balm-ui';的代码
import { detectIE } from 'balm-ui';
if(detectIE()) { ... }

浏览器控制台报错

Uncaught SyntaxError: The requested module '/@modules/balm-ui.js' does not provide an export named 'detectIE'

image

但是使用 import detectIE from 'balm-ui/utils/ie'; 就不会有报错

@XiaoPangxie732
Copy link
Author

我又发现好像除了能直接import BalmUI from 'balm-ui';之外,其它的单独的组件或方法必须从相应的文件导入,不能直接import from 'balm-ui'

@elf-mouse
Copy link
Member

@XiaoPangxie732 , 感谢您的反馈,今天我会全面确认一波 :)

@elf-mouse
Copy link
Member

elf-mouse commented Nov 9, 2020

这个问题只有 Vite 中会出现(Balm CLI 和 Vue CLI 脚手架中均正常),属于 Native ES Module 的打包和使用问题。

当前独立使用的临时解决方案:

  • vite.config.js

    export default {
      alias: {
        vue: "vue/dist/vue.esm-bundler.js",
      },
      optimizeDeps: {
        include: ["balm-ui/components/button", "balm-ui/utils/ie"],
      },
    };
  • main.js

    import detectIE from "balm-ui/utils/ie";
    import UiButton from "balm-ui/components/button";
    
    console.log(detectIE());
    
    const app = createApp(App);
    app.use(UiButton);
    
    app.mount("#app");

我会尽快调整测试完毕后发布补丁,再次感谢!

@elf-mouse
Copy link
Member

elf-mouse commented Nov 20, 2020

@XiaoPangxie732 ,

balm-ui@9.1.0已发布,可以正常使用 esModule。

  • vite.config.js
export default {
  alias: {
    vue: "vue/dist/vue.esm-bundler.js",
    "balm-ui": "balm-ui/dist/balm-ui.esm.js",
    "balm-ui-plus": "balm-ui/dist/balm-ui-plus.esm.js",
    "balm-ui-css": "balm-ui/dist/balm-ui.css",
  },
  optimizeDeps: {
    // Remove useless warning for `balm-ui`
    exclude: ["balm-ui"]
  }
};
  • main.js
import BalmUI, { detectIE } from "balm-ui";
import BalmUIPlus from "balm-ui-plus";
import "balm-ui-css";

console.log(detectIE());

const app = createApp(App);

app.use(BalmUI);
app.use(BalmUIPlus);

app.mount("#app");

@XiaoPangxie732
Copy link
Author

可以正常使用,感谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants