2016-05-05 4 views
-1

Javascriptとnode.jsで重労働に慣れています。私はWeb Audio Apiを使っていくつかのクライアントサイドのものを書いてきました。すべての素早く汚いモノリシックな実験ですが、実際のプロジェクトをやりたいのです。私はブラウザのテストのことでこの全体を思いついたわけではありません。多くの人がテストのためにノードを使用していると聞いていますので、同じことをしたいと思います。これは部分的に私のコードを多くの素敵な小さなテスト可能なチャンクに分解することができ、それを次に1つまたは2つの大きなブロブに集めて提供することができます。ブラウザで実行され、node.jsで実行されるモジュール式のECMAScriptを書く

これまで私はjavacriptをファイルに分割し、bodyタグの最後に順番にインポートしています。 Obvsは小規模のクライアント側のプロジェクトでは機能しますが、スケーラビリティはありません。

私がもっとよく使用しているのは、ほとんどすべての他の言語のようなインポートメカニズムで、node.jsのようなものです。しかし、ブラウザは輸出やmodule.exportsについて知らず、すぐにbarfを表示します。

二つの明白なソリューションの心に春が、両方は私に臭いようで...

1)入れて輸出=のmodule.exportsは= {};すべてのページの先頭に

2)すべてのファイルをまとめてコンパイルするときに、これらのエクスポート宣言を検索して削除します。

どちらも良い解決策のように感じません。

JSでモジュラコードを作成するために知っておくべき標準的なソリューション/パターンはありますか?適度にエレガントな人はいないでしょうか?そしてそれは失敗する誰もが悪いことを吸うことはありません!私はRequireJSを勉強すべきですか? ES6モジュールはこの問題を解決しますか?もしそうなら、私はより良いサポートを待つべきでしょうか?一度にたくさんの質問をすることは大変申し訳ありませんが、JSのエコシステムはスリリングで恐ろしいものです。

+3

非の打ちどころのないですBrowserifyを検索します。 CommonJS( 'var thing = require( './ thing.js')')を使ってコードをコンパイルして、ブラウザで実行できる単一のファイルにすることができます。 ES6モジュールの目標は、これを最終的に修正することです。 –

+0

私はBabelとES6を調べます。それは未来であり、AMD(そしてそれはシムだ)は道に行くだろう。 – Jim

答えて

1

私はいつもKris Kowal et。 al。 Qライブラリにそれをやった - と、コードのそのセクションの彼のコメントは

https://github.com/kriskowal/q/blob/v1/q.js

+0

これはうまくいきました。理想的には、私が作るすべてのモジュールに2〜3ダースの定型文を追加することを避けたいのですが、これがより良い選択肢の1つであるということがあると思います。 – technicalbloke

関連する問題