Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

yeoman

spfx

After installation of Node v10.16.1 and installation of gulp and yo (Everything looks alright !) it fails on command yo @microsoft/sharepoint with 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)

I am a beginner ! Few days ago it worked , then I installed nvm (following a microsoft instruction to swap node v8 to node v10) and then problems started and i uninstalled nvm, node v8 and v10 en reinstalled node v10. The TypeError returns. Perhaps something to do with path ?
Any idea ? thx

like image 721
thb Avatar asked Apr 25 '21 11:04

thb


2 Answers

I resolved this by downgrading my gulp and yeoman versions.

First checked to see what I had installed:

npm list -g --depth=0

Output:

+-- @microsoft/[email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
-- [email protected]

So I uninstalled both gulp and yeoman:

npm uninstall -g gulp
npm uninstall -g yo

Then installed older versions:

npm install -g [email protected]
npm install -g [email protected]

Then was able to generate the SharePoint framework project successfully after running:

yo @microsoft/sharepoint

Once it completed, I was able to run the following from inside the SharePoint framework project directory to launch the local workbench:

gulp serve

Note: If if not already done so once, you need to generate a development certificate inside the SharePoint framework project directory:

gulp trust-dev-cert
like image 114
slyfox Avatar answered Oct 27 '22 17:10

slyfox


I believe you should upgrade node.js to v14, as stated in 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

Node v10 is EOL in few days (tomorrow, in fact), so it is unsafe to use it.

I faced the same issue today while scaffolding a new webpart, and I solved by upgrading node from v10 to v14.

Another suggestion is to avoid installing global npm packages if you are going to use it just once (for scaffolding, for example); I usually use npx to download on the fly yo and the microsoft generator, so I always use the latest available versions:

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

Hope this can help, bye!

like image 40
Tilt Avatar answered Oct 27 '22 18:10

Tilt