Từ https://lodash.com/:tải một phương pháp duy nhất cho lodash nhỏ được xây dựng với browserify/rollup/webpack
// Load a single method for smaller builds with browserify/rollup/webpack.
var chunk = require('lodash/chunk');
var extend = require('lodash/fp/extend');
này hoạt động tốt với hầu hết các phương pháp: each
, map
, isArray
vv Một phương pháp tôi connot được làm việc là lodash/chain
.
Mã hiện tại nơi tôi nhập khẩu các thư viện toàn lodash đi một cái gì đó như thế này:
_.chain(items)
.filter(...)
.groupBy(...)
.map(...)
.concat(...)
.value();
Điều gì sẽ được cách thích hợp của việc tạo ra một đối tượng thể kết nối thích hợp mà không chứa tất cả các phương pháp bao gồm trong lodash xây dựng? Phương thức chain
tạo đối tượng trình bao bọc lodash và trả về nó. Tôi có thể tạo ra phương pháp chuỗi riêng tôi như thế này
var lodash = require('lodash/wrapperLodash');
var filter = require('lodash/filter');
var map = require('lodash/map');
function chain(value) {
var result = lodash(value);
result.__chain__ = true;
result.filter = filter
result.map = map;
return result;
}
module.exports = chain;
Bây giờ cuộc gọi đến chain
sẽ có thể thực hiện filter
và map
. Thật không may, kết quả từ chain().filter
sẽ không có các phương pháp tôi đã đính kèm trong chuỗi ban đầu. Cách thích hợp để tạo một đối tượng lodash có thể tùy chỉnh chuỗi là gì?
Tìm thấy. Bắt đầu với điều này: https://www.npmjs.com/package/babel-plugin-lodash. Sau đó, sau khi sử dụng plugin tôi nhận được: Xây dựng mô-đun không thành công: Lỗi: filename.js: cú pháp chuỗi lodash không được hỗ trợ bởi babel-plugin-lodash. Cân nhắc thay thế cú pháp chuỗi bằng _.flow và _.flowRight mẫu thành phần. Xem https://medium.com/making-internets/why-using-chain-is-a-mistake-9bc1f80d51ba. Liên kết cuối cùng có một lời giải thích rất tốt. – jmlopez