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')