Ale*_*lls 6 node.js npm underscore.js lodash npm-install
我看到导入整个lodash库会占用磁盘上相当多的空间:
$ du . | grep lodash
1696 ./lodash/fp
5000 ./lodash
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我只是在做
require('lodash');
Run Code Online (Sandbox Code Playgroud)
和我的package.json看起来像:
"dependencies": {
...
"lodash": "^4.6.1",
...
}
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于后端项目,而不适用于Web,如果这会产生影响.
所以我的问题是 - 在没有导入整个该死的东西的情况下,导入一片lodash(只是我需要的功能)的最新方法是什么?
看起来这里有一些答案:
https://gist.github.com/callumlocke/bbfc524eaed6b3556dab
我的猜测是我应该在我的后端项目中使用点语法:
"dependencies": {
...
"lodash.X": "^4.6.1",
...
}
Run Code Online (Sandbox Code Playgroud)
然后像这样导入它:
require('lodash.X');
Run Code Online (Sandbox Code Playgroud)
rsp*_*rsp 12
有两种方法可以做到:
require('lodash.head')
require('lodash/head')
require('lodash.head')
您安装具有单独功能的包:
npm install --save lodash.head
Run Code Online (Sandbox Code Playgroud)
这将此添加到package.json:
"dependencies": {
"lodash.head": "^4.0.1"
}
Run Code Online (Sandbox Code Playgroud)
你用它:
var head = require('lodash.head');
Run Code Online (Sandbox Code Playgroud)
require('lodash/head')
您安装完整的lodash
包:
npm install --save lodash
Run Code Online (Sandbox Code Playgroud)
这将此添加到package.json:
"dependencies": {
"lodash": "^4.17.4"
}
Run Code Online (Sandbox Code Playgroud)
你用它:
var head = require('lodash/head');
Run Code Online (Sandbox Code Playgroud)
更复杂的例子:
您可以_
使用所需的两个功能:
var head = require('lodash.head');
var tail = require('lodash.tail');
var _ = {pick, defaults};
Run Code Online (Sandbox Code Playgroud)
效果相似,风格各异:
var _ = {
head: require('lodash.head'),
tail: require('lodash.tail'),
};
Run Code Online (Sandbox Code Playgroud)
如果你只想要lodash的一部分,比如lodash.pick那么使用:
有关打包为模块的单个函数的更多示例,请参阅:
您还可以使用自定义构建,请参阅:
当您使用完整包并仅导入所需的功能时:
var _ = {
head: require('lodash/head'),
tail: require('lodash/tail'),
};
Run Code Online (Sandbox Code Playgroud)
然后像Webpack这样的工具可以优化你的构建,只包含你实际使用的代码.当您导入整个lodash时:
var _ = require('lodash');
Run Code Online (Sandbox Code Playgroud)
然后静态分析无法确定在运行时将使用哪个函数,因此很难很好地进行优化,并且通常构建中包含的代码比实际需要的多.
归档时间: |
|
查看次数: |
5450 次 |
最近记录: |