2

RequireJSに出会ってから、依存関係などを整理するのに最適な方法のように思われるので、心を込めて採用し始めました。

現在のプロジェクトでは、requireJSで構成されたモジュールの「パッケージ」を作成しました。これにより、必要なデータベースAPIが多くのnode.jsアプリケーションに提供されます。

しかし、私はつまずきに遭遇しました... requireJSに煩わされることなく、サードパーティのアプリケーションが私のパッケージを使用できるようにするにはどうすればよいですか?

アプリケーションとAPIのディレクトリ構造は、現在次のとおりです。

api_package/node_modules
api_package/controllers/*
api_package/views/*
api_package/helpers/*
api_package/models/*
api_package/main.js

application_1/node_modules
application_1/app.js

application_2/node_modules
application_2/app.js

アプリケーションを自己完結型にする必要があります-簡単にデプロイできるように-現在の回避策は、api_package / *をapplication_1&2の'node_modules'ディレクトリにコピーし、requirejs構成を次のように設定することです。

(function() {
  var requirejs;

  requirejs = require('requirejs').config({
    baseUrl: __dirname,
    nodeRequire: require,
    packages: [
      {
        name: 'api_package',
        location: './node_modules/api_package'
      }
    ]
  });

これは少し汚くて間違っていると感じます!

もっと良い方法はありますか?requireJSのパッケージ機能が不足していますか?

api_packageの実装の詳細(requireJSを使用している詳細)を非表示にして、アプリケーションが他のモジュールと同じように使用できるようにすることも可能ですか?

require('api_package')
4

1 に答える 1

0

このamdefineパッケージを使用すると、AMD APIにコーディングして、他のプログラムでAMDを使用しなくても、ノードプログラムでモジュールを動作させることができます。

amdefine githubページのドキュメントに加えて、これはRequireJSWebサイトにもドキュメント化されています。

于 2013-01-22T19:55:49.340 に答える