首页 > 解决方案 > 哟 @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 返回。也许与路径有关?
任何想法 ?谢谢

标签: yeomanspfx

解决方案


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

推荐阅读