사용하는 웹팩,나는'm 가져오려고 하isEqual이후lodash
될 것으로 보인 가져오는 모든 것입니다. 나는've 려고 다음과 같은 것을 가진 성공:
import { isEqual } from 'lodash'
import isEqual from 'lodash/lang'
import isEqual from 'lodash/lang/isEqual'
import { isEqual } from 'lodash/lang'
import { isEqual } from 'lodash/lang'
설치할 수 있습니다lodash.isequal
하나의 모듈로 설치하지 않고 전체 lodash 패키지는 다음과 같이
npm install --save lodash.isequal
을 사용할 때 ECMAScript5CommonJS 모듈을 다 가져오는 이를 다음과 같이 설명합니다:
var isEqual = require('lodash.isequal');
사용 ES6 모듈이 될 것이다:
import isEqual from 'lodash.isequal';
과에서 사용할 수 있습니다 당신의 코드:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
출처:Lodash 문서
후에 가져오는 데 사용할 수 있는isEqual
기능에서 당신의 코드입니다. 참고하는 그것의 일부가 아닌 객체를 이라는_
가져오는 경우 그것은 이 방법,그래서 당신은 당신
don't 참조로_.isEqual
,하지만 직접 가진isEqual
.
대체:를 사용하여lodash-es
로 지적 의@kimamula:
된 웹팩 4lodash-es4.17.7 과 높은 이 코드를 작동합니다.
import { isEqual } from 'lodash-es';
이 때문에 웹팩 4 지원하는sideEffects국기와lodash-es
4.17.7 및 높이 포함되어 있는 플래그(설정되어있는false
).
왜전 버전 사용으로 슬래? 다른 이 질문에 답하게 제안 사용할 수도 있습니다 대시는 대신 점은 다음과 같이:
import isEqual from 'lodash/isequal';
이 작품도 있지만,두 개의 작은 단점이 있:
설치를 해야 하는 전체 lodash 패키지(npm-저장 lodash
),단지 작은 별도의 lodash.isequal 패키지 저장 공간을 저렴하고 Cpu 가 있는 빠르고,그래서 당신 걱정하지 않을 수 있습니다 이
결과 뭉치면 도구를 사용하여 다음과 같 웹팩 될 것입니다 약간 크;는 번들의 크기와 최소 예제 코드의isEqual
는 평균 28%더 큰(했는 웹팩 2,웹팩 3,과 함께 또는없이 바벨과 함께 또는없이 추하게)
는 경우에 당신은 단지 포함하고 싶isEqual
지의 나머지lodash
기능(유용한 유지하기 위해 뭉치 작은 크기),이 작업을 수행할 수 있습니 ES6;
import isEqual from 'lodash/isEqual'
이것은 거의 동일한으로 무엇's 에서 설명하는lodash
읽어보기는 것을 제외하고,거기에 그들이 사용하는require()
구문입니다.
var at = require('lodash/at');
된 웹팩 4lodash-es4.17.7 과 높은 이 코드를 작동합니다.
import { isEqual } from 'lodash-es';
이 때문에 웹팩 4 지원sideEffects
플래그lodash-es4.17.7 및 높이 포함되어 있는 플래그(설정되어있는false
).
편집
로 버전 1.9.0,소포도 지원"sideEffects":false
,threrefore가져오기{isEqual}에서'lodash-es';
또한 트리 shakable 소포와 함께.
지에 관련된 웹팩 그러나 나는'll 추가로 여기에 많은 사람들이는 현재 움직이하는 타이프 라이터.
를 가져올 수도 있습니다 하나의 함수에서 lodash 사용 가져오기 isEqual 에서'lodash/isEqual';에서는 타이프 라이터와 함께
esModuleInterop`플래그에서 컴파일러 옵션(tsconfig.json)
예
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"lib": ["es6", "dom"],
"moduleResolution": "node",
"esModuleInterop": true,
...
}
}
Lodash 목록 옵션을 몇 가지에서 자신의읽어보기:
-babel-플러그인-lodash
-설치 lodash 및 바벨 플러그인:
$npm i--저장 lodash $npm i--저장-dev babel-플러그인-lodash@babel/cli@babel/정-env
-추가 이하.babelrc
{ "플러그인이":["lodash"], "사전":[["@babel/env",{"목표를":{"node":6}}]] }
-변환 이
``
import_에서'lodash'
가져오기{추가}에서'lodash/fp'
const addOne=추(1)
_.지도([1,2,3],addOne)
대략 이:
가져오기 _add 에서'lodash/fp/추가'
가져오기 _map 에서'lodash/지도'
const addOne=_add(1)
_map([1,2,3],addOne)
-[lodash-웹팩-플러그인](https://github.com/lodash/lodash-webpack-plugin) -설치 lodash 및 웹팩 플러그인:
$npm i--저장 lodash
$npm i--저장-dev lodash-웹팩-플러그인이 바벨 코어 바벨 로더 babel-플러그인-lodash babel-정-env 웹팩
-구성하는`webpack.config.js`:
var LodashModuleReplacementPlugin=필요로('lodash-웹팩그');
var 웹팩=필요로('웹팩');
모듈입니다.수출={ 'module':{ '규칙':[{ '사':'babel-loader', '시험':/.js$/, '제외':/node_modules/, '옵션':{ '플러그인': ['lodash'], '사전': [['환경', { '모듈':false,'상': { '노드': 4 } }]] } }] }, '플러그인이':[ 새로운 LodashModuleReplacementPlugin, 새로운 웹팩.최적화 할 수 있습니다.UglifyJsPlugin ] }; ``
-[lodash-es](https://www.npmjs.com/package/lodash-es 사용)lodash cli
-$lodash 모듈화하여 수출=es-o./