我的项目是一个由多个 JSON 文件组成的 JSON 模式:
src
├── a.json
├── b.json
└── c.json
我想要做的就是version
用来自package.json
. 即a.json
包含一个${version}
(实际语法是任意的,我没有任何偏好)占位符$id
:
{
"$schema": "http://json-schema.org/schema#",
"$id": "https://foo.bar/${version}/a.json",
"type": "object",
…
}
并且version
,假设我想处理这个 JSON 并得到:package.json
1.0.0
{
"$schema": "http://json-schema.org/schema#",
"$id": "https://foo.bar/1.0.0/a.json",
"type": "object",
…
}
就是这样。它可以通过这样的脚本来实现(in package.json
):
"scripts": {
"build": "rm -rf dist && mkdir dist && cp src/*.json dist/ && sed -i'' -e \"s/\\${version}/$npm_package_version/\" dist/*.json",
}
但是我该如何使用 Webpack 呢?
我知道复制和定义插件,但似乎我需要项目中的实际源代码作为 Webpack 的入口点。像这样的配置:
const CopyPlugin = require("copy-webpack-plugin");
module.exports = {
mode: 'none',
plugins: [
new CopyPlugin({
patterns: [
{
from: "src/*.json",
},
],
}),
],
};
将文件复制到dist
(或我想要的任何地方),但给出错误:
ERROR in main
Module not found: Error: Can't resolve './src' in '/home/madhead/Projects/schema'
这里的另一个问题是如何复制和处理这些文件(替换占位符)。
如何仅使用 Webpack 复制和处理这些 JSON?