问题描述
安装 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 即时下载 yo 和 microsoft 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