Scully多配置将extraRoutes抽离单独文件出现导入错误如何解决?
Scully导入公共extraRoutes模块找不到问题解决方案
根本原因
Scully执行时会自动将项目中的Scully配置文件转译后移动到.scully/临时目录下运行,你写的相对导入路径./extraRoutes是基于配置文件原始存放路径的,转译后执行时相对路径映射不匹配,因此抛出模块找不到错误。
前置排查:先确认
extraRoutes.ts和scully.en.config.ts、scully.de.config.ts存放在项目同级目录下,未放错文件夹。
你可以选择以下任意一种方法解决:
- 方法1:导入时显式补充.ts扩展名
修改配置中的导入语句,显式指定文件后缀,Scully转译时会自动识别并将该依赖打包到临时执行目录:
import { extraRoutes } from './extraRoutes.ts';
- 方法2:配置externalDependencies选项
在各语言的Scully配置中添加externalDependencies配置项,主动声明要额外引入的依赖文件:
export default { // 原有其他配置保持不变 externalDependencies: ['./extraRoutes.ts'], extraRoutes: extraRoutes }
- 方法3:使用绝对路径导入
通过项目根路径拼接绝对路径,规避相对路径匹配问题:
import { resolve } from 'path'; const { extraRoutes } = require(resolve(process.cwd(), './extraRoutes.ts'));
内容的提问来源于stack exchange,提问作者desertSniper87
相关产品推荐
相关产品推荐

