2016-10-06 9 views
0

JavaScriptでを1つのファイルに定義し、socket = io()を別のファイルに定義しています。JavaScriptでES6モジュールを使用して単純変数をエクスポートする

私はES6でモジュールを使うべきだと思いますが、どうやってこれを行うのかは分かりません。

私は実際に変数を使用するファイルの前にロードされているファイルに2つの変数を定義しているので、今はうまくいきますが、コードが悪いように思えます。現在のファイルではそれを見ることができないため、定義されていません。

私はいくつかのチュートリアルを読んだことがありますが、変数を1つのファイルに定義して他のファイルにエクスポートする方法はまだわかりません。

それだけで

const pageId = 3; 
const socket = io(); // which is defined in file 'socket.io-1.4.5.js' which is loaded before this file 

module.exports = { pageId, socket }; 

なり、その後も、どこでも、これらのファイルをロードせずに

const pageId = require('pageId'); 
const socket = require('socket'); 

socket.on('connect', ...); 
(...) 

と他のファイルでそれをインポートしますか?

+1

可能な重複http://stackoverflow.com/questions/25494365/es6-module-export:あなたのfirstfileは "strange.js" と呼ばれているSuposing、それが同様に行われる必要があります-options) – Anthony

+0

あなたがそれらを「必要とする」ときに、何らかの方法でそれらをロードしています。 – mtsdev

+0

"*これらのファイルをどこにもロードしないで*?"とはどういう意味ですか? – Bergi

答えて

0

まあ、私もそれが

を必要とするシナリオがありますが、それは愚かな(特別PAGEID例)音を知って芽あなたはモジュールの数百に物理学/数学ライブラリを構築している想像してみてください。それは理にかなっている。一つだけの場所 で数学定数を宣言し、それらが

を必要としている場合にのみ、それらをロードすることはおそらくそれらを一つずつエクスポートすることが最善の解決策ではないですが、IOオブジェクトについては

を機能するソリューションです。私はそれを宣言し、いくつかの設定値を変更し、新しい設定で、新しい設定を作成し、どこにでも再設定するのではなく、どこにでも再エクスポートすることが理にかなっています(この動作がうまくいくとすれば、疑問)

とにかく、あなたのサンプルの構文は間違っています...あなたは "必要"で、個々のvarや機能をそのようにすることはできません。

const pageId = require('strange').pageId 
const socket = require('strange').socket; 
[ES6モジュールのエクスポートオプション](の
関連する問題