Използвам Browserify с Babel и Gulp. Понастоящем моят проект изисква много малко lodash
и аз не искам да заредя цели модули.
import assignIn from "lodash/assignin";
import isPlainObject from "lodash/isplainobject";
import isFunction from "lodash/isfunction";
Над код работи добре, но малко отнема време, че аз трябва да посочи целия път многократно. нямаше да е добре, ако можеше да се направи така:
import {assignIn, isPlainObject, isFunction} as _ from "loadash";
и да го използвате като _.assignIn
, и мога да получа пространството от имена като _
също. Правя ли нещо нередно има друг начин на правене или това е единственият начин.
Отговори:
3 за отговор № 1Ако можете да използвате babel-plugin-lodash
плъгин, той прави почти това, което искате.
Вместо:
import assignIn from "lodash/assignin";
import isPlainObject from "lodash/isplainobject";
import isFunction from "lodash/isfunction";
можете просто да използвате:
import _ from "lodash";
и изходът от браузъра ще бъде трансформиран.
Например:
import _ from "lodash";
function Foo() {
this.a = 1;
}
Foo.prototype.b = 2;
_.assignIn({ "a": 0 }, new Foo);
_.isPlainObject({});
_.isFunction(/abc/);
без приставката:
var _lodash = require("lodash");
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
...
с приставката:
var _isFunction2 = require("lodash/isFunction");
var _isFunction3 = _interopRequireDefault(_isFunction2);
var _isPlainObject2 = require("lodash/isPlainObject");
var _isPlainObject3 = _interopRequireDefault(_isPlainObject2);
var _assignIn2 = require("lodash/assignIn");
var _assignIn3 = _interopRequireDefault(_assignIn2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
...