typescript require()需要包含文件所在的文件夹 - 有时候

时间:2014-04-23 20:37:51

标签: module requirejs typescript

我有一个案例,我的进口是:

import docHeader = require('doc-header');
import listBody = require('list-body');

失败的说他们找不到.js文件,列出的网址丢失了文件。所以我把它们改成了:

import docHeader = require('document/doc-header');
import listBody = require('document/list-body');

问题是,我所拥有的文件位于文档文件夹中。这是文件设置/调用堆栈。

布局/工人-api.ts:

import document = require('document/document');
//...
var doc = new document.Document();
doc.deserialize(results.document);

布局/文件/ document.ts:

import docHeader = require('document/doc-header');
import listBody = require('document/list-body');
//...
export class Document {
    public guid : string;
    public docHeader : docHeader.DocHeader;
    public body : listBody.ListBody;

其他文件: 布局/文件/ DOC-header.ts 布局/文件/列表body.ts

是否可能因为调用堆栈以worker-api.ts开头,requireJS认为这是默认目录?在其他任何地方我的所有进口都按预期工作。它绝对是基于错误消息所需的文件夹。

1 个答案:

答案 0 :(得分:0)

RequireJS中的模块名称,除非明确地进行了修改,否则将相对于基本URL进行解析。

例如,如果http://example.com/foo/bar的脚本尝试加载cat,则已解析的网址将为http://example.com/cat

您可以通过指定相对模块名称来解决此问题,例如./doc-header。 TypeScript也会尊重这些相对路径。