tsconfig.json
...
"baseUrl": ".",
"paths": {
"@share/*": [
"../share/*"
]
}
...
jsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@share/*": [
"../share/*"
]
},
"target": "ES6",
"module": "commonjs",
"allowSyntheticDefaultImports": true
},
"include": [
"**/*.ts"
],
"exclude": [
"node_modules"
]
}
在 index.ts 配置require('module-alias/register');
这时候运行,导入import { Rst } from '@share/core/vo';
的地方就会报错,提示找不到模块,是不是 module-alias 必须要分开声明啊?不能用星号全部声明?
1
MorningStar0 2020-04-24 14:08:01 +08:00
需要引入 react-rewrite 这个,改写一下 start 部分的脚本,让其通过 rewrite 启动
|
2
VDimos 2020-04-24 14:09:41 +08:00 via Android
这个是要改 webpack 的配置,光设置 path 只告诉了 vscode 去哪里找,没告诉编译器去哪里找
|
5
fanshide 2020-04-28 14:33:39 +08:00
本地开发的话一般不需要使用 module-alias,tsconfig.json 中的 paths 就可以了,但要让打包后项目中模块路径查找正常的话就需要加入 module-alias,最好在入口文件判断环境变量来觉得使用使用 module-alias,比如:
```js // addAlias.ts import moduleAlias from 'module-alias' import path from 'path' export default () => { moduleAlias.addAliases({ '@share': path.join(__dirname, 'src/share') }) } ``` ```js // app.ts import addAlias from './addAlias' if (process.env.NODE_ENV !== 'development') { addAlias() } ``` |