答えが見つからないように見える質問があります。私は現在、消費用のライブラリを構築しており、requirejs を使用してよりモジュール化したいと考えています。私は次のプロジェクト構造を持っています...
- example
- scripts
- otter
- libs
- signals
signals.js
- modules
subModule1.js
subModule2.js
otter.js
index.htm
- src
- libs (copied to example folder at build time)
- signals
signals.js
- modules
subModule1.coffee
subModule2.coffee
- otter.coffee
私がやりたいことは、require でパスをセットアップする必要なく、またはプロジェクトがどのようにセットアップされているかを知らなくても、他のファイルから signal.js ファイルとモジュールを要求できるようにすることです。開発時。
たとえば、私が otter.coffee ファイルでやろうとしたことは次のとおりです。
define ['/libs/signals/signals'], (signals) ->
# I've also tried './libs/signals/signals' and 'libs/signals/signals'
requireがsignals.jsファイルを見つけることができないため、これは機能しないようです。
現在のファイルに関連するモジュールをロードするようにrequirejsを取得するにはどうすればよいですか? 依存関係としてrequireを要求できること、およびそのrequireのパスがファイルのパスに設定されることを読みましたが、それも機能していないようです。まだロードされていないというエラーがスローされます i:e -
define (require) ->
signals = require './libs/signals/signals'
これを達成する方法はありますか?ライブラリの構造を変更する必要がありますか? 特定の構造を強制する必要がありますか? それを使用する人に、require config に特定のパスを含めるように依頼しますか?
よろしくお願いします!
編集-
ライブラリを main.js ファイル内で require 用にエイリアスすると、(require または define による) シグナルの require が機能しないことに気付きました (404 not found が発生し続けます)。ただし、ライブラリにエイリアスを付けないと、すべて正常に動作します..
たとえば、必要な main.js ファイルに..
...
paths: {
'otter': 'scripts/otter/otter'
}
...
その後、シグナルの要求は失敗します。ただし、パスがなく、その直接パスを介してカワウソが必要な場合は、シグナルのリクエストが機能します。私はotter.jsでこのようなシグナルを必要としています...
define (require) ->
signals = require './libs/signals/signals'
これはrequire.jsのバグですか?