generate-license icon indicating copy to clipboard operation
generate-license copied to clipboard

Not working with npx

Open Graham42 opened this issue 7 years ago • 4 comments

Instead of installing anything globally, I've moved to use npx which comes with npm 5, which is default with node 8

Expected this to work:

$ npx -p generate -p generate-license gen license

Instead I get this error trace

$ npx -p generate -p generate-license gen license
npx: installed 1432 in 18.068s
[14:41:45] starting generate
[14:41:45] ✔ running tasks: [ 'license' ]
Error: Cannot find generator: "license" in "/home/grahamm/<project_dir>"
    at Generate.<anonymous> (/home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/base-generators/index.js:499:18)
    at iterate (/home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/async-each-series/index.js:8:5)
    at Function.module.exports (/home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/async-each-series/index.js:20:3)
    at Generate.generate (/home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/base-generators/index.js:492:15)
    at /home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/base-generators/index.js:475:18
    at iterate (/home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/async-each-series/index.js:8:5)
    at Function.module.exports (/home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/async-each-series/index.js:20:3)
    at Generate.generate (/home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/base-generators/index.js:474:24)
    at Generate.generate (/home/grahamm/.npm/_npx/7206/lib/node_modules/generate/node_modules/base-generators/index.js:463:23)
    at /home/grahamm/.npm/_npx/7206/lib/node_modules/generate/bin/generate.js:117:11

Graham42 avatar Jan 21 '18 19:01 Graham42

What is npx? Is that a license supported by https://github.com/github/choosealicense.com (as stated on the readme)?

jonschlinkert avatar Jan 22 '18 01:01 jonschlinkert

Oh, I see, npx is something else. I don't know anything about npm, so I might need to rely on someone else to help.

That error message isn't very helpful, I'll look into why it's happening, but it might be something to do with npx

jonschlinkert avatar Jan 22 '18 01:01 jonschlinkert

For reference, this is npx https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b

Graham42 avatar Jan 22 '18 02:01 Graham42

@Graham42 I just looked into this some.

When using npx with the -p flag, npx will download the package into a temporary "global" folder. The way generate works is that it will look for modules in the actual npm global folder, local node_modules folder, and for a local generator.js file. Since npx is putting generate-license into a temporary folder, generate doesn't know where to find it.

I tried this out by installing generate-license locally: npm i generate-license, then I was able to run npx like this: npx -p generate gen license.

I'm not sure if there's anything we can do since npx is creating temporary directories sometimes.

doowb avatar Jan 25 '18 00:01 doowb