哟@microsoft/sharepoint 在 TypeError 上失败:lookups.flatMap 不是函数

问题描述

安装 Node v10.16.1 并安装 gulp 和 yo(一切看起来都不错!)后,它在命令 yo @microsoft/sharepoint 时失败并出现 TypeError:lookups.flatMap is not a function

C:\Users\MYNAME\AppData\Roaming\npm\node_modules\yo\node_modules\yeoman-environment\lib\resolver.js:70
    filePatterns: lookups.flatMap(prefix => [`${prefix}/*/index.ts`,`${prefix}/*/index.js`]),^

TypeError: lookups.flatMap is not a function
    at Environment.resolver.lookup (C:\Users\MYNAME\AppData\Roaming\npm\node_modules\yo\node_modules\yeoman-environment\lib\resolver.js:70:27)
    at init (C:\Users\MYNAME\AppData\Roaming\npm\node_modules\yo\lib\cli.js:130:7)
    at pre (C:\Users\MYNAME\AppData\Roaming\npm\node_modules\yo\lib\cli.js:89:3)
    at Object.<anonymous> (C:\Users\MYNAME\AppData\Roaming\npm\node_modules\yo\lib\cli.js:219:3)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)

我是初学者!几天前它起作用了,然后我安装了 nvm(按照微软的指令将节点 v8 交换到节点 v10)然后问题开始了,我卸载了 nvm、节点 v8 和 v10,然后重新安装了节点 v10。 TypeError 返回。也许与路径有关?
任何的想法 ?谢谢

解决方法

我通过降级我的 gulp 和 yeoman 版本解决了这个问题。

首先检查我安装了什么:

npm list -g --depth=0

输出:

+-- @microsoft/generator-sharepoint@1.11.0
+-- gulp@4.0.2
+-- npm@6.14.12
+-- windows-build-tools@5.2.2
-- yo@4.0.0

所以我卸载了 gulp 和 yeoman:

npm uninstall -g gulp
npm uninstall -g yo

然后安装旧版本:

npm install -g gulp@3.9.1
npm install -g yo@3.1.0

然后运行后就可以成功生成SharePoint框架项目了:

yo @microsoft/sharepoint

完成后,我可以从 SharePoint 框架项目目录中运行以下命令来启动本地工作台:

gulp serve

注意:如果还没有这样做过,则需要在SharePoint框架项目目录中生成开发证书:

gulp trust-dev-cert
,

我认为您应该将 node.js 升级到 v14,如 Microsoft official guide 中所述:

安装最新版本的 Node.js LTS v14。
此版本是当前推荐用于 SharePoint 框架的 Node.js 版本

Node v10 是 EOL in few days(实际上是明天),因此使用它是不安全的。

我今天在搭建一个新的 webpart 时遇到了同样的问题,我通过将 node 从 v10 升级到 v14 来解决。

另一个建议是,如果您只打算使用一次全局 npm 包,请避免安装它(例如用于脚手架);我通常使用 npx 即时下载 yomicrosoft generator,所以我总是使用最新的可用版本:

$ npx -p yo -p @microsoft/generator-sharepoint -c "yo @microsoft/sharepoint"

希望能帮到你,再见!

,
First try to uninstall both gulp and yeoman:

to uninstall run these command-->

 - npm uninstall -g gulp
 - npm uninstall -g yo

Then installed older versions:
to install run these command-->

 - npm install -g gulp@3.9.1
 - npm install -g yo@3.1.0

Then was able to generate the SharePoint framework project successfully after running:

 - yo @microsoft/sharepoint