Angular 6 Uncaught ReferenceError: буфер не определен
Я пытаюсь перейти с 5 на 6, используя ng update
и я получаю ошибку
Uncaught ReferenceError: Buffer is not defined
at Object../node_modules/amazon-cognito-identity-js/node_modules/crypto-browserify/helpers.js (helpers.js:2)
at __webpack_require__ (bootstrap:81)
at Object../node_modules/amazon-cognito-identity-js/node_modules/crypto-browserify/md5.js (md5.js:10)
at __webpack_require__ (bootstrap:81)
at Object../node_modules/amazon-cognito-identity-js/node_modules/crypto-browserify/create-hash.js (create-hash.js:3)
at __webpack_require__ (bootstrap:81)
at Object../node_modules/amazon-cognito-identity-js/node_modules/crypto-browserify/index.js (index.js:12)
at __webpack_require__ (bootstrap:81)
at Object../node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js (vendor.js:47207)
at __webpack_require__ (bootstrap:81)
локальная среда хорошо работает для создания нового углового проекта. Я не использую буфер. Это что-то за кулисами
какие идеи?
UPD
Я пытался обновить @types / node npm install --save-dev @types/node
+ @types/node@8.9.5
updated 1 package in 12.031s
[!] 26 vulnerabilities found [36141 packages audited]
Severity: 11 Low | 13 Moderate | 2 High
Run `npm audit` for more detail
если я запускаю npm audit
npm ERR! code ENOAUDIT
npm ERR! audit Your configured registry (https://registry.npmjs.org/) does not support audit requests.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/myname/.npm/_logs/2018-05-16T13_45_17_410Z-debug.log
4 ответов
хорошо, через час мне наконец удалось заставить cognito работать над моим угловым приложением (сразу после обновления до 6.0).
о (или что-то близкое, не помню). Добавьте следующее в .HTML-код:
<!doctype html>
<html lang="en">
<head>
...
<script>
var global = global || window;
</script>
</head>
тогда вы, вероятно, получите сообщение об ошибке, что буфер не определен.
установить buffer
пакет с использованием npm или пряжи. И добавьте следующее в polyfills.ТС ():
global.Buffer = global.Buffer || require('buffer').Buffer;
Stackoverflow ответы / GitHub вопросы, которые помогли мне в случае, если это не исправлено для вас после этого:
обновление до углового-6.x дает " Uncaught ReferenceError: глобальный не определено"
https://github.com/aws/aws-amplify/issues/840#issuecomment-389459988
https://github.com/aws/aws-amplify/issues/678
@maxime1992
Для меня, в начале, это также решило проблему, которую я обнаружил с миграция в angular 6, т. е. хорошо сформулированный модуль, но не найден, когда вы хотите перейти на один из этих видов.
Проблема возникла оттуда, а не из моего импорта модуля или другого.
но когда я начинаю ng test
команда, теперь у меня есть эта ошибка :
DeprecationWarning: Tapable.плагин устарел. Использовать новое API on
.hooks
вместо
по-видимому, это проблема webpack.
Поэтому, я предпочитаю использовать это решение :
Добавление этой строки в polyfills.ts должен разрешить глобальную ошибку узла
(window as any).global = window;
еще раз спасибо !!!
Это результат изменения углового поведения CLI. В итоге я решил это, используя следующий патч:
https://gist.github.com/niespodd/1fa82da6f8c901d1c33d2fcbb762947d
см. здесь для большего контекста:
скрипт пытается потребовать версию буфера браузера, но не может ее найти. Запуск простой
npm install buffer
добавить пакет в папку package.json
и удалите ошибку на данный момент.