2017-04-09 92 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"); 
}) 

如果我加載瀏覽器 「第一頁」 和 「secondpage」 正確加載的index.html。

但我所尋找的是隻有名稱,如下所示加載這些腳本:

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

我發現的「路徑」屬性在文檔有用,但這似乎是大材小用當我有大量的文件,我想加載,並需要給每個文件單獨的條目。

有人可以請建議一個更好的方式來實現這一目標嗎?

在互聯網上似乎有很多噪音(缺乏更好的詞),但我無法縮小到使用那些確切的解決方案(有duplicate question以及似乎並沒有回答這個問題)

回答

0

如果你的模塊是所有同一目錄下,你可以設置baseUrl包含它們,然後你可以只需要與一個絕對名稱此模塊的目錄,而不必在指定每個模塊一個路徑的組態。但是,你的模塊在不同的目錄下,所以你不能這樣做。

您需要的功能等同於執行以下轉換:moduleName.replace(/^(.*)$/, "./$1/$1")。不幸的是,RequireJS的運行時配置不支持這種模式匹配。如果您想避免必須爲每個模塊創建一個條目,則可以編寫一個腳本,爲您自動填寫paths