路径别名

路径别名允许开发者为模块定义别名,以便于在代码中更方便的引用它们。当你想要使用一个简短、易于记忆的名称来代替冗长复杂的路径时,这将非常有用。

默认别名

在 Gez 中,默认使用服务名来作为别名,这样有两个好处。

  • 在调用其它服务时保持命名风格的统一
  • 执行 npm run build:dts 命令,生成的类型可以被其它服务使用。

package.json

package.json
1{
2    "name": "ssr-module-auth"
3}

程序会读取 package.jsonname 字段,设置别名为 ssr-module-auth

tsconfig.json

同时还需要在 tsconfig.json 配置别名。

1{
2    "compilerOptions": {
3        "paths": {
4            "ssr-module-auth/src/*": [
5                "./src/*"
6            ],
7            "ssr-module-auth/*": [
8                "./*"
9            ]
10        }
11    }
12}

自定义别名

业务模块,你应该总是使用默认的别名,但是一些第三方包有时需要设置别名,你可以这样做。

1export default {
2    async createDevApp(gez) {
3        return import('@gez/rspack').then((m) =>
4            m.createApp(gez, (buildContext) => {
5                buildContext.config.resolve = {
6                    ...buildContext.config.resolve,
7                    alias: {
8                        ...buildContext.config.resolve?.alias,
9                        vue$: 'vue/dist/vue.esm.js',
10                    }
11                }
12            })
13        );
14    }
15} satisfies GezOptions;
WARNING

业务模块对外导出时,程序会做一些打包的优化。如果你自定义了业务模块的别名,可能会导致打包出来的内容不正确。