Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Относительные пути (https://javascript.ru/forum/angular/72991-otnositelnye-puti.html)

destus 12.03.2018 15:09

kaniel_outis,
У TypeScript есть такая штука - baseUrl и paths называются. Настраиваются в tsconfig.json. Так вот, в ней можно указать точка входа в проект (baseUrl) и paths - аналог алиасов в вебпаке.
При таком конфиге
Код:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "paths": {
      "@app/*": ["app/*"]
    },
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ]
  }
}

и структуре проекта
Код:

-node_modules
-src
    -app
        -models
            -todo.ts
    ...
-tsconfig.json
...

Импорт модели Todo из любого файла любой вложенности будет выглядеть как
import { Todo } from '@app/models/todo'.

То есть мы избавляемся от относительных путей и получаем плоскую структуру нашего проекта :)

https://netbasal.com/sexier-imports-...t-e3c645bdd3c6

kaniel_outis 12.03.2018 16:53

Цитата:

Сообщение от destus (Сообщение 480349)
kaniel_outis,
У TypeScript есть такая штука - baseUrl и paths называются. Настраиваются в tsconfig.json. Так вот, в ней можно указать точка входа в проект (baseUrl) и paths - аналог алиасов в вебпаке.
При таком конфиге
Код:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "paths": {
      "@app/*": ["app/*"]
    },
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ]
  }
}

и структуре проекта
Код:

-node_modules
-src
    -app
        -models
            -todo.ts
    ...
-tsconfig.json
...

Импорт модели Todo из любого файла любой вложенности будет выглядеть как
import { Todo } from '@app/models/todo'.

То есть мы избавляемся от относительных путей и получаем плоскую структуру нашего проекта :)

https://netbasal.com/sexier-imports-...t-e3c645bdd3c6

огромное спасибо! )
Правда поздно увидел Ваше сообщение, нашел это же решение на другом форуме.
Единственное.... нужно ли как то ребилдить проект после изменения tsconfig? Изменения не применяются у меня, почему то. Сейчас разибраюсь. Но Вам лайк+ комент)

destus 12.03.2018 18:53

Цитата:

нужно ли как то ребилдить проект после изменения tsconfig?
Просто перезапустить сборку, ng serve. tsconfig.json в самом корне проекта который, а не в src.


Часовой пояс GMT +3, время: 16:15.