웹 팩 은 필요 에 따라 Lodash 를 포장 하 는 몇 가지 방법 에 대한 상세 한 설명 을 실현 합 니 다.
3935 단어 webpacklodash필요 에 따라 포장 하 다
데이터 조작 을 할 때 Lodash 는 바로 나의 탄약 창고 로 아무리 복잡 한 데이터 구 조 를 만 나 더 라 도 일부 함수 로 쉽게 분해 할 수 있다.
ES6 에 도 새로운 대상 함수 가 많이 추가 되 었 습 니 다.일부 간단 한 항목 에서 ES6 는 충분히 사용 할 수 있 지만 예외 적 인 상황 에서 소수의 Lodash 함 수 를 인용 할 수 있 습 니 다.압축 된 후에 도 현재 최신 버 전 은 71k 의 부피 가 있 는 완전한 Lodash 라 이브 러 리밥 한 입 먹 으 려 고 다음 식당 살 순 없 잖 아.
이 문제 에 대하 여 사실 이미 많은 선택 방안 이 있다.
함수 모듈
Lodash 의 모든 함 수 는 NPM 에 하나의 단독 발표 모듈 이 있 습 니 다.NPM: results for ‘lodash'
만약 당신 이 사용 하기 만 한다 면...isEqual,그러면 모듈
lodash.isequal
을 설치 하고 다음 과 같은 방식 으로 참조 하 십시오.
var isEqual = require('lodash.isequal')
// or ES6
import isEqual from 'lodash.isequal'
isEqual([1, 2, 3], [1, 2, 3]) // true
전체 경로 참조Lodash 를 완전히 설치 한 후 lodash/함수 이름 의 형식 에 따라 필요 한 함수 모듈 을 따로 도입 할 수 있 습 니 다.
var difference = require('lodash/difference')
// or ES6
import difference from 'lodash/difference'
difference([1, 2], [1, 3]) // [2]
플러그 인 사용 최적화간단 한 장면 에서 상기 두 가지 방식 은 문 제 를 해결 하기에 충분 하 다.
복잡 한 데이터 대상 을 만 났 을 때,우 리 는 한 파일 에 여러 개의 Lodash 함 수 를 도입 해 야 한다.그러면 파일 에 여러 개의 require 나 import 관련 함 수 를 써 야 한다.
import remove from 'lodash/remove'
import uniq from 'lodash/uniq'
import invokeMap from 'lodash/invokeMap'
import sortBy from 'lodash/sortBy'
// more...
관건 적 인 부분 에 쓰 고 있 는데 함 수 를 도입 하여 파일 머리 로 끌 어 당 겨 인용 을 정의 해 야 하기 때문에 생각 을 어 지 럽 히 고 불쾌 합 니 다!그래서 저 는 지혜 롭 게 Github 에 가서 웹 팩 과 lodash 두 키워드 의 조합 을 검 색 했 습 니 다.1 위lodash-webpack-plugin는 바로 이 문 제 를 해결 하기 위해 태 어 났 습 니 다.
사용 할 때 다음 과 같은 모듈 이 필요 합 니 다.사실은 앞의 두 개 를 제외 하고 나머지 는 모두 설치 되 어 있 습 니 다.
$ npm i -S lodash-webpack-plugin babel-plugin-lodash babel-core babel-loader babel-preset-es2015 webpack
설정:
webpack.config.js
var LodashModuleReplacementPlugin = require('lodash-webpack-plugin');
var webpack = require('webpack');
module.exports = {
module: {
loaders: [{
loader: 'babel',
test: /\.js$/,
exclude: /node_modules/,
query: {
plugins: ['transform-runtime', 'lodash'],
presets: ['es2015']
}
}]
},
plugins: [
new LodashModuleReplacementPlugin,
new webpack.optimize.OccurrenceOrderPlugin,
new webpack.optimize.UglifyJsPlugin
]
}
그 중에서 babel-plugin-lodash 의 설정,즉plugins: ['lodash']
은 반드시 loaders 에서 만 정 의 될 수 있 는 것 이 아니 라 babel 을 따로 정의 할 수 있 습 니 다.
webpack.config.js
var LodashModuleReplacementPlugin = require('lodash-webpack-plugin');
var webpack = require('webpack');
module.exports = {
module: {
loaders: [{
loader: 'babel',
test: /\.js$/,
exclude: /node_modules/
}]
},
babel: {
presets: ['es2015'],
plugins: ['transform-runtime', 'lodash']
},
plugins: [
new LodashModuleReplacementPlugin,
new webpack.optimize.OccurrenceOrderPlugin,
new webpack.optimize.UglifyJsPlugin
]
}
아니면...babelrc 파일 에서...이상 작업 이 완료 되 었 습 니 다.lodash 함 수 를 사용 해 야 하 는 모든 파일 에서 lodash 를 한 번 만 참조 하면 모든 함 수 를 호출 할 수 있 습 니 다.
import _ from 'lodash'
_.add(1, 2) //
메모:ES 2015 모듈 참조 방식 을 사용 해 야 유효 합 니 다.이상 은 제 가 현재 알 고 있 는 몇 가지 방식 입 니 다.만약 에 어떤 친구 가 더 좋 은 방법(예 를 들 어 전체 국면 에서 한 번 만 도입 해 야 합 니 다)이 있다 면 저 와 꼭 공유 하 세 요!
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qiita API v2를 Ajax에서 사용하기위한 webpack 설정 (로컬 개발 환경 전용)에서는 Qiita의 기사 목록, 사용자 세부 정보, 기사를 '좋아요'한 사람 목록 및 재고가 있는 사람 목록을 검색할 수 있습니다. Qiita 화면에서 기사를 재고한 사람을 볼 수 없기 때문에 API를 통해 기사를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.