tsconfig: изолировать субмодуль от основного приложения - PullRequest
0 голосов
/ 21 сентября 2018

мы пытаемся добавить в наше основанное на реагировании приложение независимое приложение, которое должно быть включено в веб-страницы наших клиентов при обслуживании с наших серверов.Для простоты использования и меньших размеров файлов мы хотели использовать preact.

Пока каждое приложение самостоятельно компилируется, при объявлении обоих в качестве входных файлов в моем веб-пакете я получаю трассировку стека, включающую следующие ошибки:

Из проекта preact:

    [tsl] ERROR in /home/user/workspace/project/ui-ticker/tickerV2.tsx(7,8)
      TS2605: JSX element type 'RootNode' is not a constructor function for JSX elements.
  Property 'refs' is missing in type 'RootNode'.

ERROR in /home/user/workspace/project/ui-ticker/tickerV2.tsx
[tsl] ERROR in /home/user/workspace/project/ui-ticker/tickerV2.tsx(7,9)
      TS2686: 'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.

Из проекта реагирования:

ERROR in /home/user/workspace/project/ui/app.tsx          
[tsl] ERROR in /home/user/workspace/project/ui/app.tsx(10,5
)                                                                       
      TS2605: JSX element type 'ReactElement<any>' is not a constructor f
unction for JSX elements.  

У меня есть следующая структура папок:

- project
  - tsconfig.json
  - ui (react-app)
    - tsconfig.json
  - ui-ticker (preact-app)
    - tsconfig.json

tsconfig для preactвыглядит так:

{
  "compilerOptions": {
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "noImplicitAny": false,
    "noImplicitReturns": false,
    "noImplicitThis": false,
    "strictNullChecks": false,
    "noUnusedLocals": false,
    "jsx": "react",
    "jsxFactory": "h",
  },
  "include": [
    "./*.ts",
    "./*.tsx"
  ],
  "exclude": [
    "../node_modules/",
    "../ui/"
  ]
}

Приложение реакции выглядит примерно так же.Как-то оба приложения, кажется, получают доступ к неправильным объявлениям типов.Есть ли способ каким-то образом полностью изолировать оба приложения от зависимостей друг от друга, сохраняя их в одной конфигурации веб-пакета?

...