Rollup已配置svelte的exportConditions仍抛出plugin-node-resolve缺失警告
Svelte项目启动警告问题排查(已配置exportConditions仍触发警告)
更新依赖后执行npm run dev启动Svelte项目时,收到如下警告:
WARNING: Your @rollup/plugin-node-resolve configuration's 'exportConditions' array should include 'svelte'. See https://github.com/sveltejs/rollup-plugin-svelte#svelte-exports-condition for more information
但rollup.config.js中已明确在resolve插件配置里添加了exportConditions: ['svelte'],相关代码如下:
import svelte from 'rollup-plugin-svelte'; import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; export default { input: 'src/main.js', output: { sourcemap: true, format: 'iife', name: 'app', file: 'public/build/bundle.js' }, plugins: [ ..., resolve({ browser: true, exportConditions: ['svelte'], extensions: ['.svelte'], }), commonjs(), ..., ] }
当前使用的版本:
- svelte 4.2.7
- rollup 4.5.2
- @rollup/plugin-node-resolve 15.2.3
- @rollup/plugin-commonjs 25.0.7
可行解决方法
- 调整插件加载顺序
确保resolve插件在svelte插件之后执行。Rollup插件按配置顺序运行,如果svelte插件先启动,可能还未读取到resolve的配置就触发警告。修改后示例:
plugins: [ svelte(/* 你的svelte插件配置 */), resolve({ browser: true, exportConditions: ['svelte'], extensions: ['.svelte'], }), commonjs(), ..., ]
- 升级rollup-plugin-svelte版本
旧版rollup-plugin-svelte可能与新版@rollup/plugin-node-resolve存在兼容问题,升级到适配Svelte 4的最新版本(如v7.x系列):
npm install rollup-plugin-svelte@latest --save-dev
- 完善extensions配置
在resolve的extensions中补充常见文件扩展名,避免解析时遗漏相关资源:
resolve({ browser: true, exportConditions: ['svelte'], extensions: ['.svelte', '.js', '.json'], })
- 清除缓存重装依赖
删除缓存文件后重新安装依赖,排除缓存导致的配置不生效问题:
rm -rf node_modules package-lock.json npm install npm run dev
内容的提问来源于stack exchange,提问作者Matthew Trevor
相关产品推荐
相关产品推荐

