問題タブ [requirejs-optimizer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
requirejs - モジュール ID を偽の名前に置き換える
これらの ID を持つ 3 つのモジュールで構成される AMD Java-Script アプリケーションを想像してください。
- 共通/コア/API
- 共通/データ/フー
- コモン/リモート/バー
r.js を使用して最適化されたファイルをビルドしている場合、これらの ID はコンパイル済みファイル内に残っています。IMOこれは不要です。たとえば、最適化されたファイルは、次を検索して置換しても機能します。
- 共通/コア/API -> a
- 共通/データ/foo -> b
- 共通/リモート/バー -> c
置換の利点は次のとおりです。
- より小さいファイルサイズ
- あいまいさの向上
(はい、クライアントを信頼するべきではありません。それでも、モジュール名を置き換えるには、モジュール名からアプリケーションの重要な部分をすぐに見つけるよりもはるかに多くのことをリバース エンジニアが推測する必要があります)
これが行われない理由や、これらの ID を自動生成された ID に置き換える追加のツール/コマンドがない理由はありますか?
javascript - r.js が JS を結合して縮小し、すべてのファイルを出力ディレクトリにコピーするのはなぜですか?
私は RequireJS オプティマイザーを使用してプロジェクト用に複数の最適化された JS ファイルを作成してきましたが、他の投稿で言及されている問題に遭遇しましたが、解決策は見つかりませんでした。
r.js を使用して 1 つのファイルを最適化すると、すべての JS 依存関係が 1 つのファイルに取り込まれ、ビルド ファイルの「out」プロパティで指定されたファイルにドロップされます。ただし、最適化された 2 つのファイル (つまり、「modules」プロパティを使用したマルチページ プロジェクト) を作成しようとすると、r.js は適切に最適化された 2 つのファイルを作成しますが、すべてのフォルダーとファイルを appDir から出力ディレクトリにドロップします。つまり、すべての JS 依存関係をまとめて最小化しますが、個々のファイルを出力ディレクトリにコピーします。
r.js は展開ツールとして意図されていないため、これは設計によるものであるか、または依存ファイルとディレクトリを出力ディレクトリにコピーしないように r.js に指示する方法があることを認識しています。
javascript - RequireJS オプティマイザー: 特定のライブラリを除外する
私のビルド プロセスでは、すべてのアプリケーション スクリプトとベンダー ライブラリを 1 つの .min.js ファイルに結合します。ここで、このベンダー ライブラリの 1 つが jQuery であるとしましょう。私のアプリケーションは、jQuery が既に使用されている環境で実行されます。したがって、ビルドに jQuery を含める必要はありません。ただし、私のアプリケーション プロトタイプ (開発環境) ではまだ必要なので、ビルド プロセスでしか削除できません。
そのため、.min.js ファイルをビルドするときに jQuery を除外する必要がありますが、アプリケーションは引き続き機能し、依存関係は正しく解決されるはずです。
私の grunt-contrib-requirejs ビルドは次のようになります。
それを解決するための事前定義された方法はありますか?または回避策のアイデアはありますか?
node.js - 複数のrequirejs構成ファイルを最適化する
r.js の最適化に問題があります
複数のrequirejs構成ファイルを持つプロジェクトがあります
各 main.js には自己パッケージがあること
main.js コードは次のとおりです。
module1/main.js コードは次のようになります。
build.js ファイルは次のようになります。
実行する$ r.js -o build.js
とエラーが返されます
requirejs - 複数のモジュールへの RequireJS の最適化
RequireJS を使用して JS をいくつかの大きな JS ファイルにモジュール化して、依存関係をオンデマンドでロードできるようにしようとしていますが、ページをロードするときに単一の JS を大量にダウンロードする必要はありません。
例として、JS ファイルは次のようになります。
- js/main.js
- js/views/category1/js1.js
- js/views/category1/js2.js
- js/views/category2/js1.js
- js/views/category2/js2.js
アプリケーションの一部 (例: カテゴリ 1 のすべて) は特定のタイプのユーザーのみが使用し、カテゴリ 2 も同様であるため、ユーザーごとにすべてをロードするのは意味がありません。
それぞれの js1.js および js2.js ファイルからのすべてのコードを含む 2 つの動的に読み込まれたモジュール (category1.js & category2.js) を作成するために、r.js のビルド構成を試みています。
ただし、コンパイルされた出力をロードするときに、ブラウザーは、views/category1/js1、views/category1/js2 などを見つけることができないと不平を言っています。
RequireJS で複数の小さな JS ファイルからいくつかの高レベルのモジュールを作成できるかどうかさえわかりません。誰もこれを経験したことがありますか?
編集
main.js:
index.html:
JS1、JS2 などのファイルは router.js から参照されています。