2017-11-08 2 views
0

Webpackの練習では、Reactアプリケーションが必要とするすべてのライブラリをLibs.js内などの1か所でインポートしてから、すべてのアプリケーションモジュール内で1つのimport文ですべて取得することはできますか?React appが必要とするすべてのライブラリを1つのファイルにインポートするWebpackの習慣は悪いですか?

Libs.js

import React from 'react'; 
 
import { PropTypes } from 'prop-types'; 
 
import { connect } from 'react-redux'; 
 
import { reduxForm, Field, getFormValues, change } from 'redux-form'; 
 
import isNull from 'lodash/isNull'; 
 

 

 
export default { 
 
    React: React, 
 
    PropTypes: PropTypes, 
 
    redux: { 
 
    connect: connect 
 
    }, 
 
    form: { 
 
    create: reduxForm, 
 
    change: change, 
 
    getValues: getFormValues, 
 
    Field: Field 
 
    }, 
 
    lodash: { 
 
    isNull: isNull 
 
    } 
 
};

任意のアプリモジュール

import libs from 'common/libs';

+1

webpack 2/3を使用している場合は、このようなことができると思いますが、デプロイ用にアプリケーションをビルドするときにモジュールの重複がないことを確認する必要があります。私はこれを助けるためにwebpack-bundle-analyzerをチェックします。 –

答えて

1

WebPACKのロールアップは、すべてのライブラリは、そのグループ囲まれたモジュールのこの種を一緒にする必要はありません。バンドリングシステムを使用しており、インポートが20回反応した場合、システムはコードを1回だけインポートしてインクルードしないので、使用しているファイルにどのライブラリ依存関係をインポートするのが簡単です。

このアプローチでは、どのコンポーネントがどのライブラリを使用しているかを明確にしています。

短い答え:はい、私の意見では、それは悪い習慣であり、私はどんなプロジェクトでもしません。

+0

はい私は理解しますが、これを教えてください... Libs.jsファイルはnode_modulesフォルダのライブラリと、すべてのアプリケーションのReactコンポーネントに文字通りインポートされたライブラリだけを保持します。プロジェクトには20〜30のクラスがあり、すべてのファイルが同じものを繰り返しインポートします。時にはそれは20〜25行の輸入でさえあります。 Libs.jsを使用すると、1行ですべて取得できます。たぶん、私はライブラリコンポーネントが使用するものは正確にはわかりませんが、ファイルの最上位セクションははるかに明確になり、ノードのインポートはアプリケーションのインポートから分離されます。 – Karmello

+1

個人的な経験に基づき、25行ではありません。また、vanilla jsのモジュールパターンを尊重するアプリケーションを本当にビルドしたい場合は、各ファイルのすべてのモジュールをインポートまたは必要とする必要があります。 作成しようとしていることは、あなたのアプリのコンベンションです。あなたはその大会のマスターです。あなたのチームがそれに慣れている場合、または単独で働いている場合は、それに行きましょう。 –

関連する問題