我对Aurelia来说相当新,所以如果这是一个显而易见的问题,或者甚至是不应该考虑的事情,请对我保持温和。通过阅读网络上的文档和各种资源,这似乎无法在任何地方解决。
随着我的项目规模的增加,我重新构建了文件夹和文件。虽然重构它感觉有点麻烦,但是检查路径的正确深度,以及当我移动视图模型时,我也需要更改导入路径。
目前我需要在视图模型中导入某些文件:
import {log} from './../../services/log';
我觉得更舒服的是从项目的根开始有一个相对路径,如:
import {log} from 'services/log';
我有什么遗失或根本不理解?我知道用./指定了当前文件的相对路径。
更新
我尝试使用Aurelia Contact Manager Tutorial,其中src文件夹中的所有文件都在同一级别。如果我移动' wep-api.ts'将文件存入' src / services'文件夹,并希望从视频模型中导入该文件' src / components / users'我需要使用导入
import {WebAPI} from './../../services/web-api';
它似乎只适用于' services / web-api'错误是
[ts] cannot find module 'services/web-api'
aurelia.json文件包含
"paths": {
"root": "src", ...
答案 0 :(得分:7)
看起来需要配置typescript编译器来访问所需的路径。
tsconfig.json
{
...
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"*":["src/*"]
}
}
...
}
有了这个,现在进口就像来自'src'下面的任何文件和文件夹结构的'services / web-api'(位于'src')。
Kudos从Aurelia gitter频道转到stoffeastrom,他实际指出了正确的方向。
答案 1 :(得分:-1)
这应该可以正常工作。 Aurelia的Doc HUB上的documentation声明:
“您在
from
属性中提供的路径可以是两个中的一个 表单:它可以是相对于应用程序的根或相对的 到你当前所在视图的路径。没有的路径 有./
或../
开始路径将相对于根 您的应用程序,而./
或../
的路径将是相对的 你的观点的路径。请注意,您可以使用多个..
来遍历 根据需要使用目录树。“
这在实践中也能正常使用(绝对是aurelia-cli
,这是我使用的)。
因此,你写的声明:
import {log} from 'services/log';
将有效导入视图模型(log.ts
)并从log.html
文件夹中查看(@noView
,除非指定了/src/services
装饰器)。
仅限课程(无视图)
如果您没有视图,除非您明确告知Aurelia不要查找视图,否则它将抛出错误。要解决此问题,请导入noView
并在类声明之前添加装饰器,如下所示:
import {noView} from 'aurelia-framework';
@noView
export class MyClass {