仅导入您需要的内容?

时间:2019-04-29 14:05:54

标签: node.js webpack yarnpkg

最近我在一次聚会上,其中一个话题是关于如何使用Webpack来仅需要您需要的软件包的一部分。我相信这被称为摇树。我想知道没有Webpack是否有办法做到这一点?例如,您可以确切地指定所需的代码段,而不是整个节点模块。

有关此的任何信息都将非常有用。我只是想学习新东西。

干杯

1 个答案:

答案 0 :(得分:0)

有两种非常简单的方法:

在ES6中,您可以执行所谓的destructuring

这是一个数组示例:

var a, b, rest;
[a, b] = [10, 20];

console.log(a);
// expected output: 10

console.log(b);
// expected output: 20

[a, b, ...rest] = [10, 20, 30, 40, 50];

console.log(rest);
// expected output: [30,40,50]

这是按索引进行的结构分解,其中a =数组[0],b =索引1的数组(超链接禁止的括号格式),等等...请注意...运算符,在ES6中称为散布运算符。 Here is a link to that if you are curious about what it does, or how to use it.

您也可以对对象做同样的事情,请考虑:

const someRandomObject = {
     a: 1,
     b: 2,
};

const {a} = someRandomObject;
console.log(a) // expected output: 1

名称上仅破坏了对象所需的属性,因此不会引入大量未使用的东西。如果您不使用ES6,则可以执行以下操作:

const someRandomObject = {
     a: 1,
     b: 2,
};

const a = someRandomObject.b;
console.log(a) // expected output: 2

与上述相同,您要从someRandomObject中提取所需的属性,而仅此而已。请注意,上述方法是在右侧拉取值,因此变量的名称无关紧要。这两种方式在功能上是等效的(我相信)。