是否可以在aurelia视图模型中指定项目根目录中的路径?

时间:2017-01-02 14:21:54

标签: typescript aurelia-cli

我对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", ...

2 个答案:

答案 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 {