Установка yo и генератора-кода на xubuntu

Установка yo и генератора-кода на xubuntu

Итак, я пытаюсь установить yo и generator-code для xubuntu, чтобы попытаться создать некоторые расширения vs code. Я установил nodejs и npm через sudo apt-get, а затем сделал это, но sudo npm install -g yo generator-code когда я попытался запустить, yo -v or yo codeя получил следующую ошибку

    filePatterns: lookups.flatMap(prefix => [`${prefix}/*/index.ts`, `${prefix}/*/index.js`, `${prefix}/*/index.cjs`, `${prefix}/*/index.mjs`]),
                          ^

TypeError: lookups.flatMap is not a function
    at Environment.resolver.lookup (/usr/local/lib/node_modules/yo/node_modules/yeoman-environment/lib/resolver.js:70:27)
    at init (/usr/local/lib/node_modules/yo/lib/cli.js:130:7)
    at pre (/usr/local/lib/node_modules/yo/lib/cli.js:89:3)
    at Object.<anonymous> (/usr/local/lib/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)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

Позже я понял, что sudo — не лучший подход, поэтому я создал новый каталог для npm-packages и установил для него префикс

mkdir "/programming/.npm-global"
npm config set prefix "/programming/.npm-global"
gedit ~/.profile

к которому я добавил export PATH=~/programming/.npm-global/bin:$PATH , то я сделал

npm install -g yo generator-code

теперь, когда я бегу, yo codeя получаю

/usr/local/lib/node_modules/yo/node_modules/yeoman-environment/lib/resolver.js:70
    filePatterns: lookups.flatMap(prefix => [`${prefix}/*/index.ts`, `${prefix}/*/index.js`, `${prefix}/*/index.cjs`, `${prefix}/*/index.mjs`]),
                          ^

TypeError: lookups.flatMap is not a function
    at Environment.resolver.lookup (/usr/local/lib/node_modules/yo/node_modules/yeoman-environment/lib/resolver.js:70:27)
    at init (/usr/local/lib/node_modules/yo/lib/cli.js:130:7)
    at pre (/usr/local/lib/node_modules/yo/lib/cli.js:89:3)
    at Object.<anonymous> (/usr/local/lib/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)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

и если я побегу sudo yo code

я получил

/usr/local/lib/node_modules/yo/node_modules/conf/index.js:128
            throw err;
            ^

Error: EACCES: permission denied, open '/root/.config/insight-nodejs/insight-yo.json'
    at Object.openSync (fs.js:443:3)
    at Object.readFileSync (fs.js:343:35)
    at Conf.get store [as store] (/usr/local/lib/node_modules/yo/node_modules/conf/index.js:108:18)
    at Conf.get (/usr/local/lib/node_modules/yo/node_modules/conf/index.js:47:27)
    at Insight.get optOut [as optOut] (/usr/local/lib/node_modules/yo/node_modules/insight/lib/index.js:52:22)
    at Object.<anonymous> (/usr/local/lib/node_modules/yo/lib/cli.js:208:48)
    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)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

решение1

Итак, вот как мне удалось решить эту проблему. Я сделал следующее:

npm remove yo

npm remove generator-code

sudo apt remove npm

sudo apt update

sudo apt install build-essential checkinstall libssl-dev

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.1/install.sh | bash

nvm install 16.11.0

npm config delete prefix

npm install -g npm

npm install yo generator-code

yo code

Связанный контент