我有一个json是需要我的地方文件node的脚本,但我不希望有它捆绑的rollup。我希望它被视为“外部”。每次json文件更改时,脚本应该能够在不通过汇总重建包的情况下获取更改。目前,它在捆绑包中是“硬编码”的:
// ./src/index.js
const json = require('../example.json');
Run Code Online (Sandbox Code Playgroud)
与./example.json:
{
"exampleValue": "X"
}
Run Code Online (Sandbox Code Playgroud)
返回一个包,其中包括:
{
"exampleValue": "X"
}
Run Code Online (Sandbox Code Playgroud)
我试图用 排除它rollup-plugin-json,但正如我所料,它抛出:
[!] 错误: Unexpected token (注意你需要 rollup-plugin-json 来导入 JSON 文件)
是否可以将 json 文件标记为外部,就像您可以通过汇总配置文件中的属性external和output.paths属性标记外部包一样?
该JSON插件实际上做的工作对我来说。这是我的配置文件rollup-config.js:
// import json from 'rollup-plugin-json'; Deprecated
import json from '@rollup/plugin-json';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import pkg from './package.json';
export default [
// browser-friendly UMD build
{
input: './index.js',
output: {
file: '../index.js',
name: 'Hy52fWS8r', // The global (never used) name for the factory of this UMD
format: 'umd'
},
plugins: [
resolve(),
commonjs(),
json({
compact: true
})
]
}
];
Run Code Online (Sandbox Code Playgroud)
源代码:
// test.json
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
// index.js
const test = require('./test.json')
console.log(test) // Array(3) [ 1, 2, 3 ]
Run Code Online (Sandbox Code Playgroud)
该rollup的输出如下:
var test = [1,2,3];
var test$1 = /*#__PURE__*/Object.freeze({
'default': test
});
var test$2 = getCjsExportFromNamespace(test$1);
Run Code Online (Sandbox Code Playgroud)
我还不知道这背后的原理是什么。您可以忽略test$1和test$2变量。
| 归档时间: |
|
| 查看次数: |
5463 次 |
| 最近记录: |