2017-01-02 19 views
6

Tôi khá mới với Aurelia vì vậy hãy nhẹ nhàng với tôi nếu đây là một câu hỏi rõ ràng hoặc thậm chí một cái gì đó người ta không nên xem xét làm. Từ việc đọc tài liệu và các tài nguyên khác nhau trên web, điều này dường như không được giải quyết ở bất cứ đâu.Có thể chỉ định đường dẫn từ gốc dự án trong các kiểu xem aurelia không?

Khi dự án của tôi tăng kích thước, tôi đã cấu trúc lại các thư mục và tệp. Trong khi tái cấu trúc nó cảm thấy một chút cồng kềnh, như để kiểm tra độ sâu chính xác của con đường, và cũng có khi tôi di chuyển các mô hình xem tôi cần thiết để thay đổi đường dẫn nhập khẩu là tốt.

Hiện nay tôi cần phải nhập các tập tin nhất định trong mô hình quan điểm của tôi là:

import {log} from './../../services/log'; 

gì tôi sẽ tìm thấy thoải mái hơn là nên có một đường dẫn tương đối bắt đầu từ thư mục gốc của dự án như:

import {log} from 'services/log'; 

Có điều gì tôi thiếu hoặc đơn giản là không hiểu? Tôi biết rằng với ./ đường dẫn tương đối từ tệp hiện tại được chỉ định.

Cập nhật:

tôi đã cố gắng cùng với Aurelia Contact Manager Tutorial nơi tất cả các file trong thư mục src là trên cùng cấp. Nếu tôi di chuyển tệp 'wep-api.ts' vào thư mục 'src/services' và muốn nhập tệp đó từ một viewmodel bên trong 'src/components/users', tôi cần sử dụng nhập như

import {WebAPI} from './../../services/web-api'; 

Nó dường như không chỉ làm việc với 'dịch vụ/web-api' và lỗi là

[ts] cannot find module 'services/web-api' 

File aurelia.json bao gồm

"paths": { 
    "root": "src", ... 

Trả lời

6

Như dường như trình biên dịch nguyên cảo cần phải được cấu hình để truy cập vào các đường dẫn mong muốn.

tsconfig.json

{ 
    ... 
    "compilerOptions": { 
    ... 
    "baseUrl": ".", 
    "paths": { 
     "*":["src/*"] 
    } 
    } 
    ... 
} 

Với điều này tại chỗ, nhập khẩu bây giờ làm việc như ví dụ 'services/web-api' (nằm trong 'src') từ bất kỳ cấu trúc thư mục và tập tin nào bên dưới 'src'.

Các thanh danh đi đến từ kênh Aurelia gitter thực sự chỉ ra đúng hướng.

-1

này nên chỉ làm việc tốt. Các documentation trên tiểu bang Doc HUB Aurelia của:

"Con đường bạn cung cấp trong các thuộc tính from có thể mất một trong hai hình thức: Nó có thể là tương đối so với thư mục gốc của ứng dụng của bạn hoặc người thân để đường đi của view bạn đang ở. Đường dẫn không có số ./ hoặc ../ để bắt đầu đường dẫn sẽ tương ứng với gốc của ứng dụng của bạn, trong khi đường dẫn có ./ hoặc ../ sẽ tương ứng với đường dẫn của chế độ xem của bạn. có thể sử dụng nhiều số .. để di chuyển lên trên một cây thư mục như nee ded. "

Điều này cũng hoạt động chính xác trong thực tế (chắc chắn với aurelia-cli, đó là những gì tôi sử dụng).

Do đó, báo cáo kết quả như bạn đã viết nó:

import {log} from 'services/log'; 

hiệu quả sẽ nhập khẩu một viewmodel (log.ts) và xem (log.html, trừ khi trang trí @noView được quy định) từ thư mục /src/services.Chỉ

Class (Không Xem)

Nếu bạn không có một cái nhìn, nó sẽ ném ra một lỗi trừ khi bạn rõ ràng cho Aurelia không tìm kiếm một. Để làm việc xung quanh này, nhập khẩu noView và thêm các trang trí trước khi khai báo lớp của bạn, như thế này:

import {noView} from 'aurelia-framework'; 

@noView 
export class MyClass { 
+0

Đó là những gì tôi đã đọc một lần nữa nhưng không có may mắn làm cho nó hoạt động. Tôi gặp lỗi 'Không thể tìm thấy mô-đun'. Tôi đang sử dụng typcript nhưng tôi đoán điều đó không quan trọng. Tuy nhiên, tệp được nhập chỉ là tệp .ts không có chế độ xem được liên kết. Có lẽ đó có thể là vấn đề? –

+0

Vâng, đó sẽ là vấn đề. Nhập 'noView' và thêm' @ noView' trước khai báo lớp của bạn. Tôi sẽ cập nhật câu trả lời của tôi với mã mẫu. – LStarky

+0

Ok đây có thể là trường hợp cho chế độ xem không có chế độ xem, nhưng điều gì về ví dụ lớp web-api fom hướng dẫn người quản lý liên hệ. Khi tôi đặt tập tin đó trong một thư mục con và muốn tham chiếu nó từ một thư mục con khác, nó chỉ hoạt động với ./../ ở phía trước. Tôi có thể làm cho nó rõ ràng hơn và cập nhật câu hỏi của tôi nếu điều đó giúp. –

Các vấn đề liên quan