gpt4 book ai didi

node.js - 汇总: how to require json but not include it in bundle

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:50 25 4
gpt4 key购买 nike

我的 node 脚本中的某处需要一个 json 文件,但我希望将其由 捆绑>汇总。我希望它被视为“外部”。每次 json 文件发生更改时,脚本应该能够获取更改,而无需通过汇总重建包。目前,它在 bundle 中是“硬编码”的:

// ./src/index.js
const json = require('../example.json');

其中./example.json为:

{
"exampleValue": "X"
}

返回一个包,其中包括:

// ...
var exampleValue = "X";
var example = {
exampleValue: exampleValue
};

var example$1 = /*#__PURE__*/Object.freeze({
exampleValue: exampleValue,
default: example
});
// ...

我尝试用 rollup-plugin-json 排除它,但正如我所料,它会抛出:

[!] Error: Unexpected token (Note that you need rollup-plugin-json to import JSON files)

是否可以将 json 文件标记为外部,就像通过汇总配置文件中的 externaloutput.paths 属性标记外部包一样?

最佳答案

json plugin实际上为我做了这项工作。这是我的配置文件 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
})
]
}
];

源代码:

// test.json
[1, 2, 3]
// index.js
const test = require('./test.json')
console.log(test) // Array(3) [ 1, 2, 3 ]

汇总的输出如下所示:

var test = [1,2,3];

var test$1 = /*#__PURE__*/Object.freeze({
'default': test
});

var test$2 = getCjsExportFromNamespace(test$1);

我还不知道这背后的理由是什么。您可以忽略 test$1test$2 变量。

关于node.js - 汇总: how to require json but not include it in bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55362346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com