vue-cli设置别名带路径'/'问题

题目描述

目前components下有默认组件与components_h5文件夹;
components下有a.vue、b.vue、c.vue组件;
components_h5下有特殊的b.vue组件;

使用时想得到

import a from '@components_h5/a';
import b from '@components_h5/b';
import c from '@components_h5/c';

题目来源及自己的思路

如果components_h5/a没有,自动获取components/a组件。

相关代码

使用的config.resolve.alias设置别名,但是无法实现

config.resolve.alias
.set('@components', resolve('src/components'))
.set('@components_h5', resolve('src/components'))
.set('@components_h5/b', resolve('src/components_h5/b'))

你期待的结果是什么?实际看到的错误信息又是什么?

不想让开发人员关注使用时特别区分componentscomponents_h5

阅读 2.3k
2 个回答

自己解决了。。。
单独在components_h5下写了个index.js,把用到的组件都引入,统一导出。

import a from '@components/a';
import b from '@components_h5/b';
import c from '@components/c';

export {
    a,
    b.
    c
}

使用的页面只要

import {
    a,
    b,
    c
} from '@components_h5';

不用关注哪些是标准的哪些是特殊的了。
之前想的复杂了。。

写个脚本简单判断下即可:

if(fileExists){
  config.resolve.alias.set('@components_h5', resolve('src/components_h5'))
}else{
  config.resolve.alias.set('@components_h5', resolve('src/components'))
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题