Веб-часть SPFx - node_modules / @ types / [prop types] и [реагировать] index.d.ts: загрузка «ошибки TS1005» при сборке gulp - PullRequest
0 голосов
/ 22 октября 2018

Итак, я создаю spfx веб-часть, одной из функций которой является отображение предварительного просмотра ссылки.Для этой задачи я использовал эту библиотеку .Мне пришлось изменить версию пакета «styled-components» и обновить мои «response» (16.4.18) и «response-dom» (16.0.9), чтобы он работал.После внесения этих изменений и запуска gulp build я получаю следующий список ошибок:

[10:21:13] [tsc] typescript version: 2.4.2
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(27,38): error TS1005: '=' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(29,46): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(29,75): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(29,99): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(31,54): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(31,78): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(31,81): error TS1109: Expression expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(31,97): error TS1109: Expression expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(31,122): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(31,130): error TS1128: Declaration or statement expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(31,138): error TS1005: ',' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(44,48): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(44,49): error TS1109: Expression expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(44,50): error TS1109: Expression expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(44,68): error TS1005: '(' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(44,69): error TS1005: ')' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(46,30): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(46,54): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/prop-types/index.d.ts(46,57): error TS1109: Expression expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2297,27): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2298,14): error TS1005: ':' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2298,28): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2299,9): error TS1109: Expression expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2300,9): error TS1005: '(' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2301,9): error TS1005: '(' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2302,5): error TS1005: '(' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2302,12): error TS1005: ')' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2314,49): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2314,76): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2314,99): error TS1005: ';' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2315,13): error TS1128: Declaration or statement expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2316,13): error TS1005: '(' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2316,17): error TS1005: ',' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2316,44): error TS1005: ',' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2316,45): error TS1005: ':' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2318,17): error TS1005: '(' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2318,21): error TS1005: ',' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2318,51): error TS1005: ',' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2318,52): error TS1005: ':' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2320,21): error TS1005: '(' expected.
[10:21:17] Error - [tsc] node_modules/@types/react/index.d.ts(2320,24): error TS1005: ')' expected.
[10:21:17] Error - 'tsc' sub task errored after 3.75 s
 exited with code 2

эта проблема github чем-то похожа на мою, предлагая обновить версию для машинописного текста до 2.3.4 или выше.

Была еще одна проблема с github, которую я не могу найти в настоящее время, предлагая обновить версию машинописного текста до версии 2.8.x или выше.

Моя машинописная версия 3.1.3.У меня одна и та же версия установлена ​​локально (в папке модулей узла проекта) и глобально.Как вы могли заметить, при запуске сборки я все равно получу вывод

[tsc] typescript version: 2.4.2

Я изменил все записи, связанные с машинописью в файле "package.json", а также в файле yarn.lock (яс использованием пряжи) в «3.1.3» или «~ 3.1.3», как они первоначально сказали «2.4.1» или «2.4.2» или «~ 2.4.1» или «~ 2.4.2».Из того, что я прочитал, это связано с синтаксисом определения / делкарации, который поддерживается только в машинописном тексте 2.8 и выше.Для istance, одна из рассматриваемых строк:

 Error - [tsc] node_modules/@types/prop-types/index.d.ts(27,38): error TS1005: '=' expected.

export const nominalTypeHack: unique symbol;

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

Если будет предоставлена ​​дополнительная информация, я буду рад это сделать.Заранее благодарим за все предложения и ответы.

1 Ответ

0 голосов
/ 22 октября 2018

Я сделал быстрый веб-поиск и обнаружил несколько потоков (например, 1 , 2 ), указывающих, что система сборки SPFx прикрепляла людей к старомуверсия TypeScript.Я не видел решения.

Один из возможных подходов - разделить ваш код на одну часть, которая взаимодействует с React, и одну часть, которая взаимодействует с SPFx, скомпилировать первую часть для JavaScript самостоятельно, используя последнюю версиюtsc и включите полученные файлы JavaScript при компиляции второй части через систему сборки SPFx.Я ничего не знаю о системе сборки SPFx, чтобы знать, может ли это работать;если вы попробуете это и столкнетесь с конкретной проблемой, я могу помочь.

Другая идея - использовать более старые версии пакетов @types, которые совместимы с вашей версией TypeScript, хотя они могут отсутствовать.функции, которые вам нужныНапример, для TypeScript 2.4.2 вы должны установить тег ts2.4 для @types/prop-types, запустив npm install @types/prop-types@ts2.4 (или npm install -D @types/prop-types@ts2.4; см. здесь для получения подробной информации о разнице).

...