Angular 16 — /app/src/polyfill.ngtypecheck.ts не найден

Я использую Angular 16. Поскольку я установил зависимость Dragula ng2-dragula, у меня возникла проблема с компиляцией. Как сказано в файле readme модуля => «Важно: добавьте в ваш polyfills.ts следующую строку:

(window as any).global = window;

«Я создал polytillls.ts, потому что в Angular 16 этого файла больше нет.

Я добавил файлpolytils.ts в свою папку app/src/

В моем angular.json я отредактировал строку с такими полифилами => "polyfills": "src/polyfills.ts",

И в tsconfig.app.json я добавил такие полифилы =>

"files": [
    "src/main.ts",
    "src/polyfill.ts"
  ],

Когда я запускаю ng serve, я получаю эту ошибку:

./src/polyfills.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):

Error: XXXXXXXX\app\src\polyfills.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.

Error: error TS6053: File 'XXXXXXXX/app/src/polyfill.ngtypecheck.ts' not found.
  The file is in the program because:
    Root file specified for compilation


Error: error TS6053: File 'XXXXXXXX/app/src/polyfill.ts' not found.
  The file is in the program because:
Root file specified for compilation

Я не понимаю, что я сделал не так, и после того, как я проверил несколько ссылок в Google, я не могу решить свою проблему.

Если у кого-то есть идеи, поделитесь ими <3 Заранее спасибо

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
0
231
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто выполните следующие шаги.

Сначала установите ng2-dragula, как показано в документации:

npm install ng2-dragula
# or
yarn add ng2-dragula

Затем создайте polyfills.ts внутри папки src.

полифиллы.ts

(window as any).global = window;

После создания откройте tsconfig.app.json и добавьте файл polyfills.ts.

tsconfig.app.json

/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": []
  },
  "files": ["src/main.ts", "src/polyfills.ts"],
  "include": ["src/**/*.d.ts"]
}

Затем добавьте polyfills.ts в массив angular.json, polyfills.

Также добавьте файл стилей "node_modules/dragula/dist/dragula.css" в массив стилей.

angular.json

  ...
  "architect": {
    "build": {
      "builder": "@angular-devkit/build-angular:browser",
      "options": {
        "outputPath": "dist/test",
        "index": "src/index.html",
        "main": "src/main.ts",
        "polyfills": ["src/polyfills.ts", "zone.js"],
        "tsConfig": "tsconfig.app.json",
        "inlineStyleLanguage": "scss",
        "assets": ["src/favicon.ico", "src/assets"],
        "styles": [
          "node_modules/dragula/dist/dragula.css",
          "src/styles.scss"
        ],
        "scripts": []
        ...
  1. Добавьте DragulaModule.forRoot() в модуль вашего приложения.

     import { DragulaModule } from 'ng2-dragula';
     @NgModule({
       imports: [
         ...,
         DragulaModule.forRoot()
       ],
     })
     export class AppModule { }
    

В любых дочерних модулях (например, модулях маршрутов с отложенной загрузкой) просто используйте DragulaModule.

Затем вы можете включить дополнительный CSS в styles.scss

/* in-flight clone */
.gu-mirror {
  position: fixed !important;
  margin: 0 !important;
  z-index: 9999 !important;
  opacity: 0.8;
  -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)';
  filter: alpha(opacity=80);
  pointer-events: none;
}
/* high-performance display:none; helper */
.gu-hide {
  left: -9999px !important;
}
/* added to mirrorContainer (default = body) while dragging */
.gu-unselectable {
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
}
/* added to the source element while its mirror is dragged */
.gu-transit {
  opacity: 0.2;
  -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=20)';
  filter: alpha(opacity=20);
}

Пример HTML-кода компонента:

<div>
  <div class = "wrapper">
    <div class = "container" dragula = "DRAGULA_FACTS">
      <div>You can move these elements between these two containers</div>
      <div>Moving them anywhere else isn't quite possible</div>
      <div>
        There's also the possibility of moving elements around in the same
        container, changing their position
      </div>
    </div>
    <div class = "container" dragula = "DRAGULA_FACTS">
      <div>
        This is the default use case. You only need to specify the containers
        you want to use
      </div>
      <div>More interactive use cases lie ahead</div>
      <div>
        Make sure to check out the
        <a href = "https://github.com/bevacqua/dragula#readme"
          >documentation on GitHub!</a
        >
      </div>
    </div>
  </div>
</div>

Демо-версия Stackblitz -> cd test -> npm i -> npm run start

Спасибо, но я следил за этим в своем приложении. Но у меня все еще есть та же проблема :( Мое приложение работало хорошо за несколько месяцев до того, как я добавил ng2-dragula, и я не понимаю, почему у меня эта ошибка, я не вижу в этом смысла. Но в вашем stackblitz да, это работает хорошо

Fizik26 22.08.2024 21:46

@ Fizik26 воспроизведите проблему и поделитесь ею, добавили ли вы полифилы в tsconfig.app.json, также попробуйте удалить папку .angular node_modules и блокировку пакета json и выполнить новую установку

Naren Murali 22.08.2024 21:48

Я удалил папки, как вы упомянули, но проблема осталась та же... Я пытаюсь воспроизвести ее на Stackblitz, но на данный момент мне это не удается xD

Fizik26 22.08.2024 22:14

У вас есть идеи, почему на моем локальном компьютере он ищет этот файл? полифилл.ngtypecheck.ts

Fizik26 22.08.2024 22:20

Чувак.... проблема была в том, что я назвал свой файл полифилл.тс, а не полифиллс.тс......... Как потерять 3 часа... Еще раз спасибо за помощь

Fizik26 22.08.2024 22:32

Я не думаю, что у вас проблемы с установкой. Я думаю, это то, как вы называете свои файлы, исключительно потому, что ваша ошибка указывает именно на это.

./src/polyfills.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):

Error: XXXXXXXX\app\src\polyfills.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.

Ошибка: XXXXXXXX\app\src\polyfills.ts отсутствует в TypeScript. компиляция. Пожалуйста, убедитесь, что он находится в вашем tsconfig через «файлы». или «включить» свойство.

В вашем рабочем каталоге НЕТ такого файла, как polyfills.ts.

Другие вопросы по теме