Skip to content

transform 下路径自动补全 #313

Open
@maoxiaoke

Description

@maoxiaoke

背景

比如,以下 TypeScript 代码:

import { add } from './filename'; // 引用相对路径的文件
import { mulitply } from './directory'; // 引用相对路径下的默认的 index.js 文件

在 esm 规范下,以上的写法属于不规范写法,@ice/pkg 亦不支持上述写法。正确的写法如下:

import { add } from './filename.js'; // 引用相对路径的文件
import { mulitply } from './directory/index.js'; // 引用相对路径下的默认的 index.js 文件

ice/pkg 需要提供路径默认补全能力,以及编译时报错能力,提前暴露问题。

存在以下导入场景:

import index from './src'; // 导入相对路径文件夹

import index from './src/index'; // 导入相对路径文件

import index from 'pkg/lib/index'; // 导入某 package.json 不存在 exports 字段的 lib 下的文件

import index from '@/index'; // 配置了 alias 的相对路径 - 这一类写法无需关系,最终会处理 alias 会转换为其他情况

方案

将使用 es-module-lexer 分析经各插件处理后的代码。若开启 autoPathcompletion,则默认为路径补全 .js 后缀。

import { defineConfig } from '@ice/pkg';

export default defineConfig({
  autoPathcompletion: true
})

Related Issues

ice-lab/ice-next#89

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions