如何让graphql-schema-linter使用CJS后缀的配置文件?
解决graphql-schema-linter读取CJS后缀配置文件的问题
针对Laravel Mix升级到Vite后,graphql-schema-linter无法识别.cjs后缀配置文件的问题,提供以下几个可行解决方案:
方案1:创建JS桥接文件
在build-util/config目录下新建graphql-schema-linter.config.js文件,内容仅用于导入你的CJS配置:
module.exports = require('./graphql-schema-linter.config.cjs');
之后直接使用原lint命令即可:
graphql-schema-linter -c build-util/config
工具会默认读取.js后缀的配置文件,再通过该桥接文件加载你的CJS配置内容。
方案2:升级工具版本
部分旧版本的graphql-schema-linter可能未支持.cjs后缀的配置文件识别。执行升级命令更新工具:
npm update graphql-schema-linter --save-dev # 或使用yarn yarn upgrade graphql-schema-linter --dev
升级完成后,重新尝试直接指定.cjs配置文件的命令:
graphql-schema-linter -c build-util/config/graphql-schema-linter.config.cjs
方案3:临时环境变量 workaround
如果工具的配置加载逻辑基于Node的require,可以通过环境变量让Node自动解析CJS文件:
NODE_OPTIONS="--experimental-specifier-resolution=node" graphql-schema-linter -c build-util/config/graphql-schema-linter.config.cjs
此方案属于临时解决办法,优先推荐前两种更稳定的方式。
内容的提问来源于stack exchange,提问作者James Arnold
相关产品推荐
相关产品推荐

