将 JSON 或 YAML 文件直接导入 Gatsby 页面时,我需要取消引用(交换JSON References )。Gatsby 非常擅长直接导入 JSON 文件(可能是由于一些底层的 webpack 加载器),但它似乎不处理 JSON refs,a lá "$ref": "../something.json
。
例如:
父.json
{
"someRef" {
"$ref": "./child.json"
}
}
child.json
{
"foo": "bar"
}
index.js
import {SomeJson} from './parent.json'
console.log(SomeJson)
// Expected output: {someRef: {foo: bar}}
// Actual output: {someRef: {$ref: './child.json'}}
我想可能 Gatsby 使用的默认 JSON 加载器不允许 JSON 引用。美好的。但是不能扩展 webpack 配置来尝试添加这个功能吗?这是我的尝试:
盖茨比-node.js
exports.onCreateWebpackConfig = ({ actions }) => {
actions.setWebpackConfig({
module: {
rules: [
{
test: /\.json$/,
use: [
{
loader: '@cloudflare/json-schema-ref-loader'
}
]
}
]
},
})
}
@ cloudflare /json-schema-ref-loader库是一个 webpack 加载器,旨在遵循 refs。所以我认为这可以使用。
运行gatsby develop
时,构建失败并显示:
Unexpected token m in JSON at position 0 while parsing near 'module.exports = {
...'
error Generating development SSR bundle failed
任何帮助将不胜感激。