2017-04-09 1 views
1

私は次のようなディレクトリ構造を持っています。ロードには相対パスのないjsモジュールが必要です

|-- app.js 
|-- config.js 
|-- index.html 
|-- js 
| |-- firstpage 
| | `-- firstpage.js 
| |-- lib 
| | `-- jquery-3.2.0.min.js 
| `-- secondpage 
|  `-- secondpage.js 
`-- require.js 

app.js

define(function(require, module){ 
    var $ = require("jquery"), 
    firstpage = require("./firstpage/firstpage"), 
    secondpage = require("./secondpage/secondpage"); 
}) 

私はきちんとブラウザ "FIRSTPAGE" と "secondpage" 負荷でのindex.htmlをロードする場合。

しかし、私は何を探していますと、名前だけで次のようにこれらのスクリプトを読み込むことです:私は「パス」は、ドキュメントに有用であることが属性を見つけましたが、これは私が持っていたときにやり過ぎのようです

firstpage = require("firstpage"), 
    secondpage = require("secondpage"); 

ロードしたいファイルの数が多く、ファイルごとに別々のエントリを与える必要があります。

誰かがこれを達成するより良い方法を提案できますか?

これはインターネット上では、周りの多くのノイズ(より良い言葉の不足のため)があるようですが、私はそれらを使用して正確な解決策に絞り込むことができません(duplicate questionも同様にこれに答えるようです)

答えて

0

あなたのモジュールがすべて同じディレクトリの下にあった場合は、あなたがそれらを含むディレクトリにbaseUrlを設定することができ、その後、あなたは自分の中でモジュールごとに一つのパスを指定しなくても、絶対的な名前でモジュールを必要とする可能性があります構成。しかし、あなたのモジュールは異なるディレクトリの下にあるので、これを行うことはできません。

必要な機能は、次の変換を実行するのと同じです。moduleName.replace(/^(.*)$/, "./$1/$1")。残念なことに、RequireJSの実行時設定はこの種のパターンマッチングをサポートしていません。モジュールごとに1つのエントリを作成する必要がないようにするには、pathsを自動的に埋め込むスクリプトを作成できます。

関連する問題