如何将需求/导入视为值而不是依赖项

问题描述 投票:0回答:1

**案例I:**我有一个名为data.json的文件;

{
  "a": 1,
  "b": 2,
  ...
}

我在index.js中导入/需要的内容,如下所示

import data from './data.json';

console.log(data["a"]);

一切正常,但是当与webpack捆绑在一起时,整个data.json都转储到index.js中,因此文件大小随我不需要的属性值而增加。

**第二种情况:**但是,如果我在index.js中执行以下操作

const a = {
  "a": 1,
  "b": 2,
  ...
}

console.log(data["a"]);

一切都很好(记录了值1),并且没有转储json变量a的不必要属性。我认为webpack的Tree Shaking正在此处运行(我不确定)

我的问题:如何通过要求/导入文件来实现情况II(没有不必要的属性),就像情况I一样?

我在考虑是否有一种方法可以将require的内容视为一个值而不是一个依赖项,因此webpack或任何其他捆绑程序不会将其包含在捆绑的文件中。

PS:我正在捆绑WEB

javascript node.js webpack bundler tree-shaking
1个回答
0
投票

使用fs:

const fs = require('fs')
let jsonData = JSON.parse(fs.readFileSync('data.json', 'utf-8'))
© www.soinside.com 2019 - 2024. All rights reserved.