![](/img/trans.png)
[英]What's the difference between require.config and requirejs.config
[英]Typescript - RequireJS specify pathing in require.config
我正在現有應用程序中創建一組新的網頁。 我們開始實現Typescript + RequireJS。
我試圖弄清楚如何在使用名稱而不是路徑的打字稿中進行require調用。 所有路徑都將在require.config中指定
例如,這是我的main.ts
require.config({
baseUrl: '/Scripts/Modules',
paths: {
'baseObject' : 'objects/base',
'inheritedObject' : 'objects/some/other/paths/inheritedObject'
});
這是baseObject.ts:
class BaseObject {
initialize(): void {
}
fingerprint: string;
}
export = BaseObject;
現在我想在InheritedObject.ts中做的事情是這樣的:
import baseObj = require('baseObject');
class InheritedObject extends baseObj{
//Object full of stuff
}
由於我在require.config中指定了路徑,因此我不希望在require調用中使用它。 如何僅使用提供的字符串(而不是路徑!)使Typescript正常工作?
我試圖弄清楚如何在使用名稱而不是路徑的打字稿中進行require調用
import baseObj = require('baseObject');
目前將無法使用(免責聲明: 如果您不想手動創建.d.ts
)。 您必須使用相對路徑。 您的IDE可以幫助您: https : //github.com/TypeStrong/atom-typescript#relative-paths
注意:這種基於基本路徑的解決方案即將推出: https : //github.com/Microsoft/TypeScript/issues/2338
所以我想通了。 這是我所做的(特別注意文件名與類名。):
File: /Objects/baseObject.ts
class BaseObject {
initialize(): void {
}
fingerprint: string;
}
export = BaseObject;
接下來,我們有:
File:/Objects/Objects.d.ts
import baseObjInstance = require("baseObject");
export module "baseObject"{
export = baseObjInstance;
}
和實現:
File:/Controllers/baseController.ts
import baseObj = require('baseObject');
class BaseController extends baseObj{
}
export = BaseController;
似乎這允許注冊定義,因此當您require('baseObject')
時,打字稿可以理解該定義。 我相信我的require語句正在路徑中,它們只是將其存儲到本地目錄中。 這使我可以在require config中指定路徑,我只需要確保匹配require config中的模塊export語句框即可。 IE瀏覽器
require.config({
paths: {
"baseObject": 'Objects/baseObject'
}
})
唯一的缺點是我必須為每個對象定義添加一個export語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.