2017-01-31 20 views
0

npmモジュールを作成しました。これはノードでは完全に動作しますが、Socket.ioと同じようにブラウザで使用できます。ノードでは、私はそのように使用します。Socket.ioがそうであるように、それはモジュールのクライアントバージョンを果たす指定した場合var AIM = require('aimjs')(server)ブラウザでnpmモジュールを使用できるようにするにはどうすればいいですか?

サーバparamが(Node.js doc)http.Serverからオプションで、次のとおりです。

if (this.server != null) { 
    var listeners = this.server.listeners('request').slice() 
    this.server.removeAllListeners('request') 
    this.server.on('request', function (req, res) { 
     if (url.parse(req.url).pathname === '/AIM.js') { 
      res.setHeader('Content-Type', 'application/javascript') 
      res.writeHead(200) 
      res.end(fs.readFileSync(__dirname + '/AIM.client.js')) 
     } else { 
      for (var i = 0; i < listeners.length; i++) { 
     listeners[i].call(self.srv, req, res) 
     } 
    } 
    }) 
} 

このfile(AIM.client.js)は私のメインのブラウジング版ですが、モジュールは外部にはありません。どうすればグローバル化できますか?私はそのユーザーがモジュールをインストールして、<script type='text/javascript' src='/AIM.js'></script>を含めて、クライアント側とサーバー側の両方で使用できるようにしたい。

答えて

0

ファイルをブラウズするときは、--standalone-s)オプションを使用してください。

例:

browserify index.js -s aimjs 

これはUMDバンドルファイルを作成します。

  • CommonJS環境で使用すると、CommonJSモジュールとして動作します。
  • AMD環境で使用されている場合、AMDモジュールとして動作します。
  • スクリプトタグを使用するだけの場合は、window.aimjsに自身を添付します。
+0

私のコードを1つのファイルにリファクタリングし、(amd、ウィンドウ、モジュール)の3つの可能なエクスポートを行いました。 –

関連する問題