2016-09-14 10 views
2

私はBabelとGulpでBrowserifyを使用しています。 現在のところ、私のプロジェクトでは、lodashの一部しか必要とせず、モジュール全体をロードしたくありません。オンデマンドで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

babel-plugin-lodashプラグインを使用することができれば、それはあなたの望むものとほとんど同じです。

の代わりに:

import assignIn from 'lodash/assignin'; 
import isPlainObject from 'lodash/isplainobject'; 
import isFunction from 'lodash/isfunction'; 

あなただけ使用することができます。

import _ from 'lodash'; 

とbrowserifyからの出力が変換されます。例えば

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 }; } 
... 
+0

感謝。しかし、まだ私は行方不明になるものがあります。 'lodash'には変換がありますが、他の依存関係はどうですか? –

関連する問題