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() } ``` |