Rom*_*ber 5 node.js typescript reactjs gulp spfx
因此,我正在构建一个 spfx Web 部件,其中一项功能是显示链接预览。我使用这个库来完成这项任务。我必须更改包“styled-components”的版本并更新我的“react”(16.4.18)和“react-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
Run Code Online (Sandbox Code Playgroud)
这个 github 问题在某种程度上与我的类似,建议我将 typescript 版本更新到 2.3.4 或更高版本。
还有另一个 github 问题,我目前找不到,建议将 typescript 版本更新到 2.8.x 或更高版本。
我的打字稿版本是3.1.3。我在本地(在项目的节点模块文件夹中)和全局安装了相同的版本。正如您可能已经注意到的,在构建开始时我会得到输出
[tsc] typescript version: 2.4.2
Run Code Online (Sandbox Code Playgroud)
我已将“package.json”文件以及yarn.lock文件(我正在使用yarn)中与打字稿相关的所有条目更改为“3.1.3”或“~3.1.3”,正如他们最初所说的“2.4” .1”或“2.4.2”或“~2.4.1”或“~2.4.2”。据我所知,它与定义/声明语法相关,仅在 Typescript 2.8 及更高版本中受支持。例如,有问题的其中一行是:
Error - [tsc] node_modules/@types/prop-types/index.d.ts(27,38): error TS1005: '=' expected.
export const nominalTypeHack: unique symbol;
Run Code Online (Sandbox Code Playgroud)
一般来说,我对打字稿和节点相当陌生,所以这可能是导致不知道如何解决这个问题的另一个原因。
如果需要提供更多信息,我将很乐意提供。预先感谢所有建议和答案。
我快速进行了网络搜索,发现了几个线程(例如1、2),表明 SPFx 构建系统正在将人们固定在旧版本的 TypeScript 上。我没有看到解决方案。
一种可以想到的方法是将代码分为与 React 交互的部分和与 SPFx 交互的部分,使用最新版本的 自己将第一tsc部分编译为 JavaScript,并在通过SPFx 构建系统。我对 SPFx 构建系统一无所知,不知道这是否可行;如果您尝试并遇到特定问题,我也许可以提供帮助。
另一个想法是使用@types与您的 TypeScript 版本兼容的旧版本包,尽管它们可能缺少您需要的功能。例如,对于 TypeScript 2.4.2,您可以通过运行来安装ts2.4标签(或;有关差异的详细信息,请参阅此处)。@types/prop-typesnpm install @types/prop-types@ts2.4npm install -D @types/prop-types@ts2.4
| 归档时间: |
|
| 查看次数: |
5507 次 |
| 最近记录: |