diff options
Diffstat (limited to 'lib/init.js')
-rw-r--r-- | lib/init.js | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/lib/init.js b/lib/init.js index 000fa1a5b..32e73298f 100644 --- a/lib/init.js +++ b/lib/init.js @@ -2,15 +2,37 @@ module.exports = init +var path = require('path') var log = require('npmlog') var npm = require('./npm.js') +var npx = require('libnpx') var initJson = require('init-package-json') var output = require('./utils/output.js') var noProgressTillDone = require('./utils/no-progress-while-running').tillDone +var usage = require('./utils/usage') -init.usage = 'npm init [--force|-f|--yes|-y]' +init.usage = usage( + 'init', + '\nnpm init [--force|-f|--yes|-y]' + + '\nnpm init <@scope> (same as `npx <@scope>/create`)' + + '\nnpm init [<@scope>/]<pkg> (same as `npx [<@scope>/]create-<pkg>`)' +) function init (args, cb) { + if (args.length) { + var NPM_PATH = path.resolve(__dirname, '../bin/npm-cli.js') + var initerName = args[0] + var packageName = /^@[^/]+$/.test(initerName) + ? initerName + '/create' + : initerName.replace(/^(@[^/]+\/)?/, '$1create-') + + var npxArgs = [process.argv0, '[fake arg]', '--always-spawn', packageName, ...process.argv.slice(4)] + var parsed = npx.parseArgs(npxArgs, NPM_PATH) + + return npx(parsed) + .then(() => cb()) + .catch(cb) + } var dir = process.cwd() log.pause() var initFile = npm.config.get('init-module') |