You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至Rollup 3后@rollup/plugin-alias配置失效求助

解决Rollup 3中@rollup/plugin-alias目录读取报错问题

问题场景

Rollup 2中使用rollup-plugin-import-alias的配置可正常运行:

alias({
    Paths: {
        'myfuncs': './src/js/node_modules/mylib/src/js/myfuncs',
    },
}),

升级到Rollup 3并改用官方的@rollup/plugin-alias后,配置改为:

alias({
    entries: [
        { find: 'myfuncs', replacement: './src/js/node_modules/mylib/src/js/myfuncs' },
    ]
}),

出现报错:

[!] Error: Could not load ./src/js/node_modules/mylib/src/js/myfuncs/
(imported by ../../../../d:/Dropbox/src/js/components/staticfunc.js):
EISDIR: illegal operation on a directory, read Error: Could not load
./src/js/node_modules/mylib/src/js/myfuncs/ (imported by
../../../../d:/Dropbox/src/js/components/staticfunc.js): EISDIR:
illegal operation on a directory, read

/src/js/位于Dropbox虚拟目录,Rollup 2下无异常。

问题原因

旧的rollup-plugin-import-alias会自动处理目录路径,默认查找目录下的入口文件(如index.js),而@rollup/plugin-alias的默认行为是直接替换路径,不会自动解析目录的入口文件,导致Rollup尝试读取目录而非文件,触发EISDIR错误。

解决方法

方法1:直接指定入口文件名

在replacement路径末尾加上目录的入口文件名(通常是index.js):

alias({
    entries: [
        { find: 'myfuncs', replacement: './src/js/node_modules/mylib/src/js/myfuncs/index.js' },
    ]
}),

方法2:使用Node模块解析器

借助@rollup/plugin-node-resolve的解析逻辑,让插件自动识别目录入口:
首先确保安装了@rollup/plugin-node-resolve,然后修改配置:

const { default: resolve } = require('@rollup/plugin-node-resolve');
const alias = require('@rollup/plugin-alias');

module.exports = {
    plugins: [
        alias({
            entries: [
                { find: 'myfuncs', replacement: './src/js/node_modules/mylib/src/js/myfuncs' },
            ],
            customResolver: resolve({ extensions: ['.js'] })
        }),
        resolve()
    ]
};

方法3:正则匹配补全路径

通过正则匹配myfuncs的导入,自动补全入口文件,同时支持子模块导入:

alias({
    entries: [
        { 
            find: /^myfuncs$/, 
            replacement: './src/js/node_modules/mylib/src/js/myfuncs/index.js' 
        },
        { 
            find: /^myfuncs\/(.*)$/, 
            replacement: './src/js/node_modules/mylib/src/js/myfuncs/$1' 
        }
    ]
}),

内容的提问来源于stack exchange,提问作者maidan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 20:50:01