2017-02-23 39 views
3

Я использую Aurelia с машинописи, и я хотел, чтобы избежать использования относительного пути импорта, как:Aurelia отправка одной посылкой не удается при использовании относительного пути импорта

import { DialogBox } from '../../resources/elements/dialog-box'; 

, а скорее

import { DialogBox } from 'resources/elements/dialog-box'; 

Я изменил мой TSconfig. JSON поэтому компилятор обрабатывает относительные пути путем добавления BaseUrl и пути так:

"compilerOptions": { 
"sourceMap": true, 
"target": "es5", 
"module": "amd", 
"declaration": false, 
"noImplicitAny": false, 
"removeComments": true, 
"emitDecoratorMetadata": true, 
"experimentalDecorators": true, 
"moduleResolution": "node", 
"lib": ["es2015", "dom"], 
"baseUrl": ".", 
"paths": { 
    "*":["src/*"] 
} 

} ...

Но когда я запускаю команду консоли в «аи запустить --watch», я могу видеть все этапы работы штраф до writeBundle шаг, который не при трассировке некоторых файлов:

Starting 'processMarkup'... 
Starting 'processCSS'... 
Starting 'configureEnvironment'... 
Finished 'configureEnvironment' 
Starting 'buildTypeScript'... 
Finished 'processCSS' 
Finished 'processMarkup' 
Finished 'buildTypeScript' 
Starting 'writeBundles'... 

процесс завершается с ошибкой при слежении:

Tracing resources/elements/dialog-box... 
{ uid: 11, 
    name: 'writeBundles', 
    branch: false, 
    error: 
    { [Error: ENOENT: no such file or directory, open 'C:\...\src\resources\elements\dialog-box.js'] 
    errno: -4058, 

странной вещи: есть и другие файлы, на которые ссылаются с не относительным путем и где пакет не прерывается.

И еще одна странная вещь: если я оставлю относительный путь и расслоение с помощью наблюдателя, все будет хорошо. Затем, если я удаляю относительный '../../' из проблемного импорта, я получаю предупреждение о связке, но все работает в любом случае ...

Любая идея, что я мог сделать неправильно?

редактировал КОРРЕКЦИИ:

Я просто understoof, почему некоторые файлы, казалось, быть в комплекте, а другие не были. Я заметил, что все файлы с «корневым» импортом, которые не сработали, были фактически импортированы из других файлов с относительным путем. Поэтому я предполагаю, что связной найдет их оттуда. Это решает одну вещь, но базовая проблема все еще существует: Aurelia-кли не может пакетирования, когда есть «относительно корня» импорт ...

EDITED ДЛЯ РЕШЕНИЯ: Благодаря решению Синан Bolel здесь под землей, относительная проблема пути была решена путем обновления некоторых пакетов:

npm i -D [email protected]^3.1.5 [email protected]^2.1.0 [email protected]^1.0.0 

семантической ошибки, которые я получил после этого пришел из некоторой типизации, которые были еще установлены и не нужно, а также того, машинопись установлена ​​как локальный пакет НОГО, а также по всему миру , Я удалил их, и все ошибки исчезли.

npm uninstall @types/es6-promise 
npm uninstall @types/es6-collections 
npm uninstall typescript 
+0

Если вы подозреваете, что это ошибка, не стесняйтесь, чтобы открыть проблема в cli [github repository] (https://github.com/aurelia/cli/issues) – JeroenVinke

+0

Я создал следующую проблему github: https://github.com/aurelia/cli/issues/494 – Gaet

ответ

1

Взгляните на этот Gist example, в котором:

  • создать класс Init в src/lib/init.ts
  • Я import init from 'lib/init' в src/main.ts без относительного пути
  • меняю main.ts - import environment from 'environment', а не from './environment' - который также работает.


Используя original tsconfig generated by the CLI, моя сборка потерпела неудачу с ошибкой:

src/main.ts(3,18): error TS2307: Cannot find module 'lib/init'. 

После изменения в tsconfig in my Gist, сборка удалось.

(недействительные) Предложения:

В TSconfig, пожалуйста, вы можете попробовать:

а) Добавление ./ впереди src в compilerOptions.paths (это решает проблему на моей машине)

paths: {"*": ["./src/*"]} 
       ^

b) Добавление filesGlob

"filesGlob": [ 
    "./src/**/*.ts", 
    "./test/**/*.ts", 
    "./typings/index.d.ts", 
    "./custom_typings/**/*.d.ts" 
], 

редактировать: Предыдущие предложения не работают, как об обновлении пакетов:

npm i -D [email protected]^3.1.5 [email protected]^2.1.0 [email protected]^1.0.0 

увидеть результаты в https://github.com/aurelia/cli/issues/494#issuecomment-282103289

+0

Спасибо за ваш вход. К сожалению, это не решает мою проблему. Компиляция машинописного текста работает без проблем, это просто связанное с этим проблема. – Gaet

+1

через https://github.com/aurelia/cli/issues/494#issuecomment-282103289 - 'npm i -D [email protected]^3.1.5 [email protected]^2.1.0 [email protected]^1.0.0 ' –

+0

Я извиняюсь @Gaet Я не очень хорошо читал ваш вопрос, дайте мне знать, если обновления помогут! –