2016-11-07 4 views
2

나는 lodash에서 browserify를 사용 중이며 lodash가 브라우저 화 된 상당 부분을 구성한다는 것을 발견했습니다 bundled.js.크기를 최소화하기 위해 lodash의 작은 섹션을 요구하십시오.

전체 로다시에서 가져 왔지만 지금까지 주로 cloneDeep 방법을 사용했습니다.

var lodash = require('lodash'); 

을 작게 유지하기 위해 로다시의 필요한 부분 만 가져올 수 있습니까? node.js를 사용하고 있습니다. v6

답변

4

메서드를 체리로 선택하면 require('lodash/cloneDeep')입니다. 체리 피킹을 단순화하기 위해 babel-plugin-lodash이 있고 더 작은 번들을 위해 lodash-webpack-plugin도 있습니다.

+1

[lodash.clonedeep] (https://www.npmjs.com/package/lodash.clonedeep)로 충분합니까? –

+0

예, lodash.clonedeep이면 충분합니다. – user781486

+1

제 질문에 대답하기 위해 제작자 인 로다시를 만나게되어 영광입니다. Upvoted. 정답이지만 괜찮다면 나처럼 멍청한 놈에게 적용되기 때문에 대답으로 user8461258의 대답을 선택하겠습니다. 나는 실제로 lodash 함수를 호출하는 데 어려움을 겪고있었습니다. – user781486

1

⚠️ 경고 : "방법에 따라 독립형 패키지 will not be upgraded to v5"- 모듈 형 lodash

찬성 John-David Dalton

+1

method 메소드 당 독립 실행 형 패키지 [v5로 업그레이드되지 않음] (https://github.com/lodash/lodash/wiki/Roadmap). –

+0

@ John-DavidDalton 감사합니다. 내 답변에 의견을 남겼습니다. –

0

당신이 lodash 쿵푸 전화 차이가있다 적어 둡니다 있음 lodash 가져 오는 방법에 따라 nions.

var lodash = require('lodash'); 
var clone = lodash.cloneDeep(obj); 

John-David Dalton이 말한 것처럼 체리 피킹을하는 경우이 방법으로이 함수를 호출해야합니다.

var lodash_clonedeep = require('lodash/cloneDeep'); 
var clone = lodash_clonedeep(obj); 

전문가는 초보자가 lodash 함수를 호출하는 올바른 방법을 알지 못하는 가능성을 간과 할 수 있습니다.

1

나는 훨씬 작은 설치 공간을 가진 단순화 된 lodash 기능 패키지를 구축 해왔다. cloneDeep이 그 중 하나입니다. 당신은 당신을 위해 작동되는지를 확인하실 수 있습니다 : https://github.com/simontonsoftware/micro-dash

당신은 당신이 가져올 수있는 유일한 기능 때 lodash의 cloneDeep, 여전히 축소 된 > 12K bytes에 끌어 in the jsdocs을 볼 수 micro-dash의 버전 < 300 bytes 반면.

추가 정보에 나열된 차이점을 알고 있어야합니다. cloneDeep의 경우, 아마도 관련 사항입니다 만 프리미티브, 일반 객체, 배열에서 작동하도록 설계

  • . 상속 된 속성, 심볼 키, arguments 개체, 원시 개체 (예 : Object(1)), 날짜,지도, 집합 등을 처리하도록 설계되거나 테스트되지 않았습니다.
  • 현대적인 환경/buildchain이 사용됩니다. 예 : 이 프로젝트에는 중복 된 ES6 기능 (예 : Array.isArray())이 포함되지 않으며 ES6 기능을 직접 사용할 수 있습니다. 구형 브라우저/환경을 대상으로하는 경우 별도로 폴리필을 포함해야 할 수 있습니다. 그러나 polyfilled 수있는 기능을 사용합니다.