我正在使用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
。我也可以将命名空间作为_
。
我做错了还有另一种做法,或者这是唯一的方法。
答案 0 :(得分:4)
如果您可以使用babel-plugin-lodash
插件,那么它可以满足您的需求。
而不是:
#include <immintrin.h>
#include <assert.h>
void SetBit(__m256i & vector, size_t position, bool value)
{
assert(position <= 255);
uint8_t lut[32] = { 0 };
lut[position >> 3] = 1 << (position & 7);
__m256i mask = _mm256_loadu_si256((__m256i*)lut);
if (value)
vector = _mm256_or_si256(mask, vector);
else
vector = _mm256_andnot_si256(mask, vector);
}
int main(int argc, char* argv[])
{
__m256i a = _mm256_set1_epi8(-1);
SetBit(a, 54, false);
__m256i b = _mm256_set1_epi8(0);
SetBit(b, 54, true);
return 0;
}
你可以使用:
import assignIn from 'lodash/assignin';
import isPlainObject from 'lodash/isplainobject';
import isFunction from 'lodash/isfunction';
并且将对browserify的输出进行转换。
例如:
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 }; }
...