私の超ロングファイル(main.js)があると正常に動作します。しかし、私は 'y'を扱う関数を組織化のために別々のファイルに分割したいと思っています。 PHPではrequire( 'yfunctions.php')を使い、それを使ってやります。Javascriptのスプリットmain.js(インポート?必要?)
関数呼び出しを書き換える必要はありませんJavaScriptで相当するものはありますか?
main.js:
// do stuff
function first(x){
// do stuff with x
}
function second(y){
// do stuff to y
// return y
}
function third(y){
// do stuff with y
}
は、最終的に次のようになります。
main.js:
require('yfunctions.js');
// do stuff
function first(x){
// do stuff with x
}
yfunctions.js:上記
function second(y){
// do stuff to y
// return y
}
function third(y){
// do stuff with y
}
動作しません。 (それはeems)。 yfunctions.jsの各関数に「輸出」宣言を追加する必要がありますか? 「このファイル内のすべての関数を関数としてエクスポートする」と言う方法はありませんか?
(注意、私はNode.jsの/電子で働いている...しかし、私はどのようにjavascriptの作品についての一般的な知識について興味があります。)
うわから
利用機能を確認...ので、私は出て分割していた場合50の関数、私は50のmodule.exportsのリストを持っている必要がありますか? Trees4theForest @ – Trees4theForest
(...と一つだけのモンスター長main.jsファイルを作るために私を奨励)冗長で退屈なようだ - それは正しいです。 'module.exports'以降(ただし、この時点で大部分がサポートされていない)重く[_RevealingモジュールPattern_]として知られているものに基づいていますexport' ES6'(https://addyosmani.com/resources/essentialjsdesignpatterns/book/# revealingmodulepatternjavascript))((http://stackoverflow.com/questions/5647258/how-to-use-revealing-module-pattern-in-javascript [ここで良いSO参照です])。ほとんどの場合、できるだけ多くの関数をエクスポートし、実装固有の関数をモジュール自体に隠して、一種の「公開API」を作成しようとします。 –
1つの長いファイルとして残してはならないいくつかの有効な理由があります。あなたは合理的なテキストエディタを使用している場合は、このプロセスを支援することができますリファクタリングツールを有していてもよく、そうでない場合、単純な十分な正規表現は、あなたのためにそれらをつかむことができます。唯一の障害が50の関数名を収集している場合は、ノードソフトウェアをモジュール化することをお勧めします。 –