带有汇总的绝对导入
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'
我正在尝试导入
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'