Опишите ошибку
Только что обновился до 5.3.3, и наша сборка Angular дает сбой по следующим причинам:
[ng]
[ng] ERROR in ../../node_modules/@storybook/channels/dist/index.d.ts:25:9 - error TS1086: An accessor cannot be declared in an ambient context.
[ng]
[ng] 25 get hasTransport(): boolean;
[ng] ~~~~~~~~~~~~
Из быстрого Google кажется, что другие репозитории сталкиваются с той же проблемой из-за использования TypeScript 3.7.0, но Angular ограничен <3.5.0
Подобные ошибки
https://github.com/nestjs/nest/issues/3513
https://github.com/googleapis/node-gtoken/issues/244
Я считаю, что критическое изменение исходит непосредственно из TypeScript https://github.com/microsoft/TypeScript/issues/33939, но до тех пор, пока не будет выпущено исправление, файл index.d.ts
потребуется регенерировать с помощью npm i typescript@~3.6.0
(замените ^
на ~
)
Система:
OS: macOS Mojave 10.14.6
CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
Binaries:
Node: 12.14.1 - /usr/local/bin/node
npm: 6.13.4 - /usr/local/bin/npm
Browsers:
Chrome: 79.0.3945.117
Safari: 13.0.4
npmPackages:
@storybook/addon-actions: ^5.3.3 => 5.3.3
@storybook/addon-knobs: ^5.3.3 => 5.3.3
@storybook/addon-links: ^5.3.3 => 5.3.3
@storybook/addon-notes: ^5.3.3 => 5.3.3
@storybook/addon-storyshots: ^5.3.3 => 5.3.3
@storybook/addons: ^5.3.3 => 5.3.3
@storybook/angular: ^5.3.3 => 5.3.3
@storybook/cli: ^5.3.3 => 5.3.3
Я попытался выполнить обновление, но потерялся в структуре пакета 😅 - Конечный результат (после создания файлов dist) должен сделать @storybook/channels/dist/index.d.ts:25
go
Из
get hasTransport(): boolean;
Чтобы
readonly hasTransport: boolean;
Я была такая же проблема. Я решаю это обновлением пакета Typescript до последней версии
Я была такая же проблема. Я решаю это обновлением пакета Typescript до последней версии
@siropo Какая версия? Я использую angular 8.3.20 и машинопись 3.5.3. И у меня такая же ошибка при попытке создать проект.
@IsharaMadawa "
@IsharaMadawa "
@siropo Можете ли вы
@ IsharaMadawa, почему? Просто попробуйте обновить свою версию машинописного текста и проверьте, работает ли он
Если вы используете более старую версию Angular, например 8.1.0, вы увидите следующую ошибку
The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.
Если вы используете более старую версию Angular, например 8.1.0, вы увидите следующую ошибку
The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.
да. Я получил эту ошибку, и мне также пришлось обновить angular
@IsharaMadawa Вы
Я вижу ошибку ниже
The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.
в angular 8.2.3 также
Это также мешает нам использовать последнюю версию Angular 8.2.x: /
У меня есть версия Typescript 3.7.4 и версия Angular 8.3.21, и я получаю то же сообщение! Пожалуйста помоги! :-)
Обновление с ng update --next @angular/cli --force
до 9.0.0-rc.12
которое использует typescript @ "3.7.5"
, действительно помогло решить проблему.
Возникает та же проблема с typescript 3.7.5
и storybook/react 5.3.9
обновления --next @ angular / cli --force
npm install typescript @ latest
;)
ng update --next @ angular / cli --force
npm install typescript @ latest;)
Это сработало, спасибо Снаргол.
Подтверждено, обновление до Angular 9 (и с помощью расширения Typescript 3.7.5), эта проблема решена.
Обновление до TypeScript 3.7.x - не лучший вариант для разработчиков библиотеки. Это означает, что изменение с 3.6 на 3.7 (технически критическое изменение) передается нашим потребителям, и мы не можем предположить, что они могут легко обновить TypeScript.
@ndelangen Я думаю, это можно исправить, изменив https://github.com/storybookjs/storybook/blob/next/package.json#L218 на typescript@~3.6.0
, поскольку typescript@^3.4.0
преобразуется в 3.7.5
прямо сейчас. Затем мы можем сохранить обновление 3.7 до версии Storybook 6.0, так как это действительно критическое изменение.
Что вы думаете?
Похоже на план @lychyi
Хотите открыть PR против ветки next
?
Мы выберем его в master
и выпустим как патч
Ты понял!
@ndelangen @shilman
Следует ли Storybook 6 использовать TypeScript 3.7, поскольку он все равно будет предлагаться как критическое изменение? Если это так, я думаю, что это действительно нужно изменить в master
а не в next
. Текущий PR # 9826 против next
но я могу перефразировать это, чтобы вместо этого указывать на master
, дайте мне знать.
Следовательно, если TS 3.7+ на самом деле не важен, его можно обновить как часть Storybook 7 или позже?
у меня работает @lychyi. Большое спасибо за то, что позаботились об этом и обдумали это !!! 💯
re: 3.7 в сборнике рассказов 6.0. я не уверен, нужна ли версия 3.7, позволю одному из машинописцев поговорить с этим @ndelangen @kroeder @gaetanmaisse
FWIW, next
уже использует 3.7, который, к его достоинствам, имеет действительно полезные функции, такие как необязательная цепочка ( foo?.bar
) и оператор объединения с нулевым значением ( foo ?? bar
). Изменение этого только в master
для Storybook 5.3.x будет наименее разрушительным для текущего положения вещей.
Кроме того, я только что узнал, что испускание геттера / сеттера - это только критическое изменение для "typescript": "<=3.5"
. TS 3.6 ориентировал эту функцию на будущее, поэтому еще один вариант - попросить людей перейти на TS3.6, если они не могут перейти на TS3.7 по какой-либо причине. Критические изменения в TS3.6 не так уж плохи.
Однако использование TS3.7 по-прежнему мешает пользователям Angular, которые еще не могут перейти на 9.x. Angular 8.x заблокирован на ~3.5.3
.
Таким образом, основная Компромисс я предложил весом на это: _ «мы были бы удобно говорить , что Сторибук 6 не совместим с угловыми 8 , так что мы могли бы использовать самые последние и самые большие , что машинопись 3,7 может предложить?» _
@lychyi Отличное резюме. Неосведомленное чутье определенно говорит: 3,7 против 6,0. Лови будущее !! 😈
@lychyi Спасибо за отличную работу! 👏 👏
Будет ли нам комфортно сказать, что Storybook 6 несовместим с Angular 8, чтобы мы могли использовать самое последнее и лучшее, что может предложить TypeScript 3.7?
Для меня немного жестко сделать SB 6 несовместимым с Angular <9, потому что Angular 9 вышел всего на несколько дней. Многие пакеты не готовы к этой новой версии, которая для новичков Angular является реальной основной версией, которая вводит новый конвейер компиляции и рендеринга, и поэтому переход на Angular 9 не может быть выполнен для какого-то большого монорепроекта (например, того, с которым я работаю. на работе).
Поскольку улучшения, вносимые TS 3.7, в настоящее время широко не используются в SB monorepo, мы, возможно, можем сохранить TS 3.6 (так что объедините PR в next
+ вишневый выбор на master
), пока мы не найдем способ работать. вокруг этого вопроса. Возможно, стоит взглянуть на проект: https://github.com/sandersn/downlevel-dts, он позволяет создавать старые файлы определений на основе новых 🤷♂
@gaetanmaisse Вы гораздо больше приму ваше мнение по этому поводу. Однако хочу отметить несколько моментов:
1) Текущая оценка SB6 - конец апреля, и к тому времени NG9 будет несколько месяцев назад.
2) Если это действительно критическое изменение, и мы не будем его менять сейчас, в следующий раз мы сможем изменить его - 7.0, что, вероятно, будет через год.
Конечно, если мы сможем исправить это с помощью 3.6, это даже лучше! Внутри Storybook было бы здорово начать использовать необязательную цепочку и т. Д., Хотя я полагаю, что это относится к зависимости разработчика, а не к зависимости.
@shilman Я полностью согласен с вами 💯 и очень разочарован тем, что мне пришлось оставить 3.6 до SB7.
Поскольку SB6 все еще находится в стадии альфа-тестирования, я думаю, мы должны сказать, что наша цель - иметь TS 3.7+ в SB6 и найти способ по-прежнему быть совместимым с Angular <= 8. А если это невозможно, см. В конце марта. или начало апреля о том, как был принят NG9, и обсуждение отказа от поддержки Angular <= 8.
@gaetanmaisse Я играю с веткой, чтобы использовать downlevel-dts. Сначала я отклонил это, потому что это не поддерживаемая часть TypeScript, но, немного подумав, это может быть жизнеспособным вариантом, позволяющим нам использовать TS3.7 + и при этом быть совместимым с пользователями <= TS3.5. Дайте мне немного времени, чтобы проверить изменения, и тогда мы увидим, стоит ли это обслуживание. Скрипты сборки довольно аккуратны, так что это не должно быть слишком сложно.
@gaetanmaisse PR
Спасибо за возможность внести свой вклад!
Обновление с
ng update --next @angular/cli --force
до9.0.0-rc.12
которое используетtypescript @ "3.7.5"
, действительно помогло решить проблему.
Это тоже решило мою проблему! Большое спасибо!
Хорошо, но как решить эту проблему без обновления машинописного текста?
@ColCh, мы работаем над этим https://github.com/storybookjs/storybook/pull/9847 скоро он должен быть доступен! 👏 👏 @lychyi
Спасибо! Этот пиар, похоже, решает проблему.
Хорошо, терпеливо ждем :) не торопиться
Вау, это было быстро!
Но, @gaetanmaisse , можем ли мы ожидать, что этот коммит будет перенесен на версию v5? Это было бы чудесно
@ColCh Будет! Мы проверяем, все ли в порядке с последней версией 6.0.0-alpha, а затем выпустим ее в версии 5.3.x 😉
Ох, ну ладно. Спасибо 🙂
У меня следующая конфигурация, и я все еще получаю сообщение об ошибке:
`"
@angular/cli": "7.3.8",
"@angular/compiler-cli": "7.2.8",
"@angular/language-service": "7.2.3",
"@babel/core": "^7.7.7",
"@babel/preset-env": "^7.8.4",
"@babel/preset-typescript": "^7.8.3",
"@ngx-translate/core": "11.0.0",
"@storybook/addon-actions": "5.3.13",
"@storybook/addon-links": "5.3.13",
"@storybook/addon-notes": "5.3.13",
"@storybook/addon-storyshots": "^5.3.13",
"@storybook/addon-viewport": "^5.3.13",
"@storybook/addons": "^5.3.13",
"@storybook/angular": "5.3.13",
"typescript": "^3.2.4"`
ng build --prod
ERROR in node_modules/@storybook/channels/dist/index.d.ts(25,9): error TS1086: An accessor cannot be declared in an ambient context.
@ cnestor1 исправление
Спасибо, я неправильно понял и подумал, что это было так.
Какое время прибытия для следующего релиза?
Также есть способ использовать старую версию Storybook, чтобы обойти проблему, пока она не будет исправлена?
Angular 9 не прошел проверку в моей компании, поэтому мне нужно немного подождать, прежде чем я смогу обновиться.
@ cnestor1 ETA в ближайшие 5 дней
Я временно разрешил эту ошибку, посетив файл nodemodules (файл .d.ts), упомянутый в ошибке, а затем сохранив его с помощью ctrl + s, это устранит ошибку, поскольку ваш код будет скомпилирован, но ошибка все равно будет
Сын оружия!! Я только что выпустил https://github.com/storybookjs/storybook/releases/tag/v5.3.14, содержащий PR № 9847, который ссылается на эту проблему. Обновите сегодня, чтобы попробовать!
Закрытие этого вопроса. Пожалуйста, откройте снова, если считаете, что еще нужно сделать.
Получение такой же проблемы :)
@rohittagadiya вы обновили до последней версии?
Попробуйте " skipLibCheck": true , например внутри tsconfig.json.
"compilerOptions": {
"baseUrl": "src",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
**"skipLibCheck": true,**
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
},
Надеюсь, это поможет вам !!
Попробуйте " skipLibCheck": true , например, в tsconfig.json.
"compilerOptions": { "baseUrl": "src", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", **"skipLibCheck": true,** "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] },
Надеюсь, это вам поможет !!
Работает !!!! благодаря
Попробуйте " skipLibCheck": true , например внутри tsconfig.json.
"compilerOptions": { "baseUrl": "src", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", **"skipLibCheck": true,** "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] },
Надеюсь, это поможет вам !!
Работает очень хорошо, спасибо <3
Добавление "skipLibCheck": true в compilerOptions внутри файла tsconfig.json у меня сработало. Огромное спасибо .
Вмешательство - skipLibCheck: true
творит шарм. Это отлично подходит для тех, кто не может рискнуть средним циклом QA ng update
. Благодаря!
Попробуйте " skipLibCheck": true , например внутри tsconfig.json.
"compilerOptions": { "baseUrl": "src", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", **"skipLibCheck": true,** "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] },
Надеюсь, это поможет вам !!
Спасибо. Работает хорошо.
Попробуйте " skipLibCheck": true , например внутри tsconfig.json.
"compilerOptions": { "baseUrl": "src", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", **"skipLibCheck": true,** "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] },
Надеюсь, это поможет вам !!
Благодарю вас <3
изменить версию на:
"ngx-swiper-wrapper": "~ 8.0.1"
Может решить эту проблему
обновления --next @ angular / cli --force
npm install typescript @ latest;)
Я использую angular 5, можно ли использовать ngx-file-upload
обновить @ angular-devkit / build-angular
Самый полезный комментарий
Попробуйте " skipLibCheck": true , например внутри tsconfig.json.
Надеюсь, это поможет вам !!