哟 @microsoft/sharepoint 在 TypeError 上失败:lookups.flatMap 不是函数
Posted
技术标签:
【中文标题】哟 @microsoft/sharepoint 在 TypeError 上失败:lookups.flatMap 不是函数【英文标题】:yo @microsoft/sharepoint fails on TypeError: lookups.flatMap is not a function 【发布时间】:2021-07-19 00:17:16 【问题描述】:在安装 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 返回。也许与路径有关? 任何想法 ?谢谢
【问题讨论】:
【参考方案1】:我通过降级我的 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
【讨论】:
【参考方案2】:我认为您应该将 node.js 升级到 v14,如 Microsoft official guide 所述:
安装最新版本的 Node.js LTS v14。 此版本是当前推荐用于 SharePoint 框架的 Node.js 版本
节点v10是EOL in few days(实际上是明天),所以使用它是不安全的。
我今天在搭建一个新的 webpart 时遇到了同样的问题,我通过将节点从 v10 升级到 v14 解决了。
另一个建议是,如果您打算只使用一次全局 npm 包(例如,用于脚手架),请避免安装全局 npm 包;我通常使用npx 即时下载yo 和microsoft generator,所以我总是使用最新的可用版本:
$ npx -p yo -p @microsoft/generator-sharepoint -c "yo @microsoft/sharepoint"
希望对你有帮助,再见!
【讨论】:
不知道为什么,当我尝试发布我的答案时,我包含“Hi @thb”的第一行被删除了(?);如果我写“欢迎”而不是“嗨”,一切都很好。 升级到节点 14 后,问题得到解决。还安装了 gulp@3.9.1 和 yo@3.1.0 如果您升级到 Node 14,如果您依赖 @pnp/generator-spfx 并使用 React 以外的任何其他方式开发您的 webpart,请小心。【参考方案3】:首先尝试卸载 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
【讨论】:
【参考方案4】:检查版本列表是否相同:
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
【讨论】:
以上是关于哟 @microsoft/sharepoint 在 TypeError 上失败:lookups.flatMap 不是函数的主要内容,如果未能解决你的问题,请参考以下文章
无法解决“Microsoft.SharePoint.Security, Version=15.0.0.0,”与“Microsoft.SharePoint.Security, Version=14.0.
使用C#更改文件的Microsoft Sharepoint字段值?
将SharePoint Online Client组件(Microsoft.SharePoint.Client)与powershell 2.0一起使用
由于其保护级别,“Microsoft.SharePoint.MailMessage”无法访问