带有汇总的绝对导入

Absolute imports with rollup

我正在尝试导入

import { startup } from "applicationRoot/renderUI";

在我的应用程序中的任何地方工作。我认为 rollup-plugin-alias 很适合这个。我尝试配置

alias({
  applicationRoot: "applicationRoot/"
})

在我的插件数组中。这很接近,但是扩展名被删除了,所以我得到了错误:

c:\path\to\applicationRoot\renderUI doesn't exist.

加入

alias({
  resolve: [".js"],
  applicationRoot: "applicationRoot/"
}),

没有任何改变。

您可以使用 rollup-plugin-includepaths.

将此添加到您的 Rollup 配置中:

import includePaths from 'rollup-plugin-includepaths';

export default {
  ...
  plugins: [
    ...
    includePaths({ paths: ["./"] })
  ]
};

这将告诉 Rollup 也从你的应用程序的根目录解析导入,所以像

import { startup } from "applicationRoot/renderUI";

将适当地找到一个 applicationRoot 文件夹。

这不是原始问题的答案,但如果您是从搜索结果来到这里并且使用的是 Typescript,则可以在 tsconfig 中设置 compilerOptions.baseUrl,它将正常工作。

{
  ...
  compilerOptions: {
    ...
    "baseUrl": "./"
  },
}

然后,如果您有一个类似 `src/lib/util.ts' 的文件,您可以导入它:

import util from 'src/lib/util'