doctor icon indicating copy to clipboard operation
doctor copied to clipboard

NODE_PATH matches the npm root - Unable to find the npm root, something went wrong.

Open nandaccio opened this issue 3 years ago • 1 comments

I am unable to run yo, so I ran "yo doctor" and I am getting the error message below.

Yeoman Doctor Running sanity checks on your system

√ No .bowerrc file in home directory √ Global configuration file is valid × NODE_PATH matches the npm root

Unable to find the npm root, something went wrong. Try to execute npm -g root --silent on your command-line

√ No .yo-rc.json file in home directory √ Node.js version √ npm version √ yo version

Found potential issues on your machine :(

NOTES:

  • NODE_PATH is set to c:\Program Files\nodejs\node_modules\
  • npm -g root --silent returns: C:\Program Files\nodejs\node_modules
  • Node.js version: 17.3.0
  • I ran "yo doctor" both as a regular user and as an administrator, same issue
  • yo --version: 4.3.0

image

nandaccio avatar Dec 21 '21 16:12 nandaccio

Placing the generator index.js file inside generators/app instead of the root of the generator project worked for me.

// ./generator/app/index.js
var Generator = require('yeoman-generator');

// Try this sample generator
module.exports = class extends Generator {
    constructor(args, opts) {
        // Calling the super constructor is important so our generator is correctly set up
        super(args, opts);
    }
    method1() {
        this.fs.write(this.destinationPath('index.js'), 'const foo = 1;');
    }
};

Now, you might still have an error with yo doctor; however, you'll have a working generator.

A better approach would be is to use Yeoman's generator-generator as a starter kit for your generator and then build on top of that.

appsparkler avatar May 27 '22 10:05 appsparkler