Определения пользовательских типов Typescript не могут найти исходные файлы? - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь использовать файлы наборов Typescript для личной библиотеки JS в моем приложении.

Библиотека не находится в node_modules, на самом деле она находится в src\assets\extlib\extlib.js и включена через свойство scripts в мой файл angular.json .

Когда я запускаю ng build --verbose, я получаю это сообщение об ошибке:

ERROR in ./src/app/myapp-common/drawer/drawer.component.ts
Module not found: Error: Can't resolve 'src/extlib-types/ex-drawer' in 'C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\app\myapp-common\drawer'
resolve 'src/extlib-types/ex-drawer' in 'C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\app\myapp-common\drawer'
  Parsed request is a module
  using description file: C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\package.json (relative path: ./src/app/myapp-common/drawer)
    Field 'browser' doesn't contain a valid alias configuration
    resolve as module
      looking for modules in C:/Workspaces/myapp/mywebapp.next/mywebappWeb/ClientApp/
        using description file: C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\package.json (relative path: .)
          Field 'browser' doesn't contain a valid alias configuration
          using description file: C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\package.json (relative path: ./src/extlib-types/ex-drawer)
            no extension
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer doesn't exist
            .ts
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer.ts doesn't exist
            .tsx
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer.tsx doesn't exist
            .mjs
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer.mjs doesn't exist
            .js
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer.js doesn't exist
            as directory
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer doesn't exist
      C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\app\myapp-common\drawer\node_modules doesn't exist or is not a directory
      C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\app\myapp-common\node_modules doesn't exist or is not a directory
      C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\app\node_modules doesn't exist or is not a directory
      C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\node_modules doesn't exist or is not a directory
      C:\Workspaces\myapp\mywebapp.next\mywebappWeb\node_modules doesn't exist or is not a directory
      C:\Workspaces\myapp\mywebapp.next\node_modules doesn't exist or is not a directory
      C:\Workspaces\myapp\node_modules doesn't exist or is not a directory
      C:\Workspaces\node_modules doesn't exist or is not a directory
      C:\node_modules doesn't exist or is not a directory
      looking for modules in C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules
        using description file: C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\package.json (relative path: ./node_modules)
          Field 'browser' doesn't contain a valid alias configuration
          using description file: C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\package.json (relative path: ./node_modules/src/extlib-types/ex-drawer)
            no extension
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer doesn't exist
            .ts
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer.ts doesn't exist
            .tsx
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer.tsx doesn't exist
            .mjs
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer.mjs doesn't exist
            .js
              Field 'browser' doesn't contain a valid alias configuration
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer.js doesn't exist
            as directory
              C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer doesn't exist
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer.ts]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer.tsx]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer.mjs]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\extlib-types\ex-drawer.js]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\app\myapp-common\drawer\node_modules]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\app\myapp-common\node_modules]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\app\node_modules]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\src\node_modules]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\node_modules]
[C:\Workspaces\myapp\mywebapp.next\node_modules]
[C:\Workspaces\myapp\node_modules]
[C:\Workspaces\node_modules]
[C:\node_modules]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer.ts]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer.tsx]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer.mjs]
[C:\Workspaces\myapp\mywebapp.next\mywebappWeb\ClientApp\node_modules\src\extlib-types\ex-drawer.js]
 @ ./src/app/myapp-common/drawer/drawer.component.ts 3:0-52 55:42-50
 @ ./src/app/myapp-common/myapp-common.module.ts
 @ ./src/app/app.module.ts
 @ ./src/main.ts
 @ multi ./src/main.ts

Мне кажется, что он пытается найти ex-pocket.js , где он действительно должен искать extlib.js и, кроме того, он ищет в node_modules и в других местах, где его никогда не найдут.

Как мне сделать это правильно? В Visual Studio Code он, кажется, работает нормально, но во время компиляции он не работает.

Вот мои соответствующие фрагменты исходного файла:

mycomp.component.ts

import { EXDrawer } from 'src/extlib-types/ex-drawer';

бывший drawer.d.ts

import {PolymerElement, html} from '@polymer/polymer/polymer-element.js';

declare class EXDrawer extends PolymerElement {
  visible: boolean|null|undefined;
  label: string|null|undefined;
  position: string|null|undefined;
  connectedCallback(): void;
  _closeDrawer(): void;
  _drawerStatus(): void;
}

declare global {

  interface HTMLElementTagNameMap {
    "ex-drawer": EXDrawer;
  }
}

tsconfig.json

{
  "compilerOptions": {
    "typeRoots": [
      "node_modules/@types",
      "src/extlib-types"
    ]
  }
}
...