有这样一个需求:
开发时想用本地的组件库代码,于是我的导入就是:
import TAgentTalk from "../../../../agents-components/packages/agent-talk/src/index.vue";
1
而生产环境则是 import { TAgentTalk } from 'agents-components'; 有什么好的方案吗,我本来是想在vite中设置
{
find: '@agents-components',
replacement: __DEV__
? path.resolve(__dirname, '../agent-components/packages/')
: 'agents-components'
}
1
2
3
4
5
6
2
3
4
5
6
这样开发时 import { TAgentTalk } from 'agents-components'
其实指向的是 本地源码,
但是打包时会自动指向 真正的 npm 包。
不过这样还有一个问题,就是编辑器对@agents-components是没有类型提示的,我该怎么做让@agents-components的类型提示跟agents-components提示一样,可否写个声明表明@agents-components就是agents-components
你只需要在 env.d.ts 或 types/ 里写一个声明文件,告诉 TS:
“@agents-components 和 agents-components 是同一个模块”
declare module '@agents-components' {
export * from 'agents-components'
}
1
2
3
2
3