哟@microsoft/sharepoint在TypeError上失败:lookups.flatMap不是函数
安装 Node v10.16.1 并安装 gulp 和 yo(一切看起来都不错!)后,它在命令时失败,yo @microsoft/sharepoint 出现 TypeError:lookups.flatMap is not a function
C:UsersMYNAMEAppDataRoamingnpmnode_modulesyonode_modulesyeoman-environmentlibresolver.js:70
filePatterns: lookups.flatMap(prefix => [`${prefix}/*/index.ts`, `${prefix}/*/index.js`]),
^
TypeError: lookups.flatMap is not a function
at Environment.resolver.lookup (C:UsersMYNAMEAppDataRoamingnpmnode_modulesyonode_modulesyeoman-environmentlibresolver.js:70:27)
at init (C:UsersMYNAMEAppDataRoamingnpmnode_modulesyolibcli.js:130:7)
at pre (C:UsersMYNAMEAppDataRoamingnpmnode_modulesyolibcli.js:89:3)
at Object.<anonymous> (C:UsersMYNAMEAppDataRoamingnpmnode_modulesyolibcli.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 官方指南中所述:
安装最新版本的 Node.js LTS v14。
此版本是当前推荐用于 SharePoint 框架的 Node.js 版本
Node v10几天后(实际上是明天)EOL,因此使用它是不安全的。
我今天在搭建一个新的 webpart 时遇到了同样的问题,我通过将 node 从 v10 升级到 v14 来解决。
另一个建议是,如果您只想使用一次全局 npm 包,请避免安装它(例如,用于脚手架);我通常使用npx来即时下载yo和microsoft generator,所以我总是使用最新的可用版本:
$ npx -p yo -p @microsoft/generator-sharepoint -c "yo @microsoft/sharepoint"
希望这可以帮助,再见!
THE END
二维码