charlike
Version:
Small, fast, simple and streaming project scaffolder for myself, but not only. Supports hundreds of template engines through the @JSTransformers API or if you want custom `render` function passed through options
19 lines (17 loc) • 647 B
JavaScript
var re = /^\s*("*)([^"]*?\b(?:node|iojs)(?:\.exe)?)("*)( |$)/
var npmre = /^\s*("*)([^"]*?\b(?:npm))("*)( |$)/
var path_ = require('path')
if (path_.win32) path_ = path_.win32
module.exports = function (path, rebase, whichOrUndefined) {
var m = path.match(re)
if (!m) {
m = path.match(npmre)
if (!m) return path
var npmPath = whichOrUndefined('npm') || 'npm'
npmPath = path_.dirname(npmPath) + '\\node_modules\\npm\\bin\\npm-cli.js'
return path.replace(npmre, m[1] + rebase + ' "' + npmPath + '"' + m[3] + m[4])
}
// preserve the quotes
var replace = m[1] + rebase + m[3] + m[4]
return path.replace(re, replace)
}