yo @microsoft/sharepoint fails on TypeError: lookups.flatMap is not a function

yo @microsoft/sharepoint fails on TypeError: lookups.flatMap is not a function

安装 Node v10.16.1 并安装 gulp 和哟(一切看起来都很好!)它在命令 yo @microsoft/sharepoint 上失败并出现类型错误:lookups.flatMap 不是函数

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 en 重新安装了节点 v10。类型错误 returns。也许与路径有关?
任何的想法 ?谢谢

我通过降级 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

然后在运行ning:

之后能够成功生成SharePoint框架项目
yo @microsoft/sharepoint

一旦完成,我就可以从 SharePoint 框架项目目录中 运行 以下内容来启动本地 workbench:

gulp serve

注意:如果还没有生成过一次,需要在SharePoint框架项目目录下生成开发证书:

gulp trust-dev-cert

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

中所述

Install the latest version of Node.js LTS v14.
This version is the currently recommended version of Node.js to use with the SharePoint Framework

节点v10是EOL in few days(明天,事实上),所以使用它是不安全的。

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

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

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

希望对你有所帮助,再见!

首先尝试同时卸载 gulp 和 yeoman:
卸载 运行 这些命令-->

npm uninstall -g gulp
npm uninstall -g yo

然后安装旧版本:
安装 运行 这些命令-->

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

然后在运行ning:

后能够成功生成SharePoint框架项目
yo @microsoft/sharepoint

检查版本列表是否相同:

npm list -g --depth=0

+-- @microsoft/generator-sharepoint@1.11.0
+-- gulp@3.9.1
+-- gulp-cli@2.3.0
+-- yarn@1.22.17
+-- yo@3.1.0

运行 下面的卸载命令:

npm uninstall -g gulp
npm uninstall -g yo

运行 以下命令:

npm install -g gulp@3.9.1
npm install -g yo@3.1.0
npm uninstall -g @microsoft/generator-sharepoint

然后安装以前的版本:

npm install -g @microsoft/generator-sharepoint@1.11.0