php - laravelのモジュール化とwebpack+vue.jsソリューションを解決するにはどうすればよいですか?
phpcn_u1582
phpcn_u1582 2017-06-23 09:11:17
0
1
690

最近、会社のプロジェクトではバックエンドの開発に vue ファミリーのバケット要素 ui を使用する必要がありますが、元のプロジェクトは requirejs によって書かれているため、すべての laravel モジュールは独立してインストールおよびアンインストールできます。つまり、それらの js とCSS はすべて独立しており、共通のものはthemes/backendテーマ ディレクトリに直接配置されます。次に、単一ページ プログラムでこのソリューションをどのように実装するかという疑問が生じます。要件は
## です。 # (注: ここでのモジュールは、js と npm のモジュールではなく、laravel のモジュールです)

  1. 各モジュールは個別にインストールされます。インストール後、モジュール内の

    Resources/Bakcend/assetsディレクトリがpublic/backend/modules/モジュール名に自動的に公開されます。 、およびthemes/bakcend/index.blade.phpの下にあるものは自動的に読み込むことができます (solved)

  2. 単一ページのバックエンドは、webpack を使用してパッケージ化ディレクトリ

    public/backend/modules/モジュール名の下にパッケージ化され、その後modules/モジュール名/Resources に自動的にコピーされます。 /Bakcend/assets 以下 (解決済み)

  3. 各モジュールは独自のバックエンド メニュー、管理インターフェイスなどを持つことができ、これらはすべて vue、vue-router、element-ui で実装されます。すべてのモジュールのエントリ ページは

    themes にあります。 /backend_default/index.blade.php,(solved)4.各モジュールはさまざまなサードパーティによって開発され、一般モジュール センターに公開されます。ユーザーは次の方法で必要なモジュールをダウンロードできます。それ自体 (
    PHP バックエンドは解決されましたが、フロントエンド JSに問題があります)

問題は、上記の 4 番目の要件のフロントエンドの側面で発生します。個人または内部チームがすべてのモジュールを開発する場合、そのような問題は発生しませんが、異なるサードパーティの開発では Webpack パッケージ化の問題が発生します。

現在、解決策は 2 つありますが、どちらも問題を根本的に解決することはできません。

1つ目は、

各laravelモジュールは個別にパッケージ化されています

ですが、単一ページのバックエンドではモジュールごとにvendor.jsを生成して配置することは不可能であるため、パブリッククラスライブラリではそれを処理できません。パブリックに公開するか、パブリックに配置します。クラス ライブラリを app.js に配置して、各モジュール (blog-module、core-module、dashboard-module など) の Vendor.js が全体の

themes/ にロードされるようにします。 backend_default/index.blade.phpと app.js はこれらのパブリック クラス ライブラリを繰り返しロードします

2 つ目は、テーマ/バックエンド テーマの下に統合されたパッケージ化です
各モジュールのリソースは、themes/backend/modules/{module-name}に自動的に配置されます。パッケージ化後にそれぞれのmodule/Resources/Backend/assetsに抽出され、他の人がモジュールをインストールすると、このモジュールに自動的にpublishassetsが追加されます。 backend/modules/{module-name} ディレクトリにありますが、これは機能しません。各開発者が異なるモジュールを担当する場合、webpack.config.jsまたは webpack にパッケージ化されたものがあるためです。 mix.js も異なります。たとえば、私がblog moduleの app.js を記述し、あなたがdashboard moduleの app.js を記述した場合、それぞれでパッケージ化されたアセットvendor.js(パブリック クラス ライブラリに格納されているファイル) の webpack モジュール ID が異なる場合 (すべてのモジュールの app.js のパブリック クラス ライブラリが同じであっても)、アプリ公開後に異なるモジュールの .js が読み込まれる 各モジュールの Vendor.js が異なり、読み込むものを選択できないためエラーが発生します

この問題を具体的に解決するにはどうすればよいでしょうか?

phpcn_u1582
phpcn_u1582

全員に返信 (1)
阿神

参照: /a/11...
プラグインを動的にロードする webpack メカニズムに基づく SPA シングルページ Web アプリケーション

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!