Angular 6: не удалось скомпилировать: не удается разрешить «поток» в ./node_modules/hash-base - PullRequest
0 голосов
/ 17 мая 2018

Я обновил три приложения Angular 5 до Angular 6, но последнее доставляет мне неприятности.Каждый раз, когда я пытаюсь скомпилировать (обслужить / собрать, jit / aot, dev / prod), я получаю эту ошибку:

ERROR in ./node_modules/hash-base/index.js
Module not found: Error: Can't resolve 'stream' in '[...]/node_modules/hash-base'
ℹ 「wdm」: Failed to compile.

основа хеша кажется зависимостью веб-пакета:

@eagle5/editor-app@0.2.6
└─┬ @angular-devkit/build-angular@0.6.1
  └─┬ webpack@4.6.0
    └─┬ node-libs-browser@2.1.0
      └─┬ crypto-browserify@3.12.0
        └─┬ create-hash@1.2.0
          ├─┬ md5.js@1.3.4
          │ └── hash-base@3.0.4 
          └─┬ ripemd160@2.0.2
            └── hash-base@3.0.4  deduped

Некоторые особенности этого приложения заключаются в том, что у меня есть папка в ./src рядом с папкой приложения, и я устанавливаю git-репозиторий в виде пакета npm и импортирую некоторые определения машинописи, как в моем tsconfig.json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ],
    "paths": {
      "@nettrek/*": [
        "./@nettrek/*"
      ]
    }
  },
  "include": [
    "./src/**/*",
    "./node_modules/@eagle5/player-core/dto/**/*"
  ],
  "angularCompilerOptions": {
    "preserveWhitespaces": false
  }
}

Я пытался установить этот пакет stream npm, но в этой версии отсутствует stream.Transform расширение, которое использует хеш-база.

Я попробовал узел 8.11.1 и 10.1.0

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

попробуйте добавить «поток» в ваш проект

npm install stream --save
0 голосов
/ 17 мая 2018

Хорошо, я нашел причину ошибки. Мы сами использовали md5.js в одном классе и забыли поместить его в наш package.json, потому что он уже был установлен. Md5.js, конечно, нужен узел в браузере, который angular 6 больше не поддерживает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...