browserify
Advanced tools
Comparing version 0.3.7 to 0.4.0
79
index.js
@@ -169,3 +169,5 @@ var fs = require('fs'); | ||
if (opts.name && ( | ||
opts.main === opts.filename || libname === opts.name || libname === '.' | ||
opts.main === opts.filename | ||
|| libname === opts.name | ||
|| libname === '.' | ||
)) { | ||
@@ -175,3 +177,4 @@ aliases = opts.base | ||
(opts.name + unext(opts.filename.slice(opts.base.length))) | ||
.replace(/\/\.\//g, '/') | ||
.replace(/\/\.\//g, '/'), | ||
opts.name, | ||
] | ||
@@ -190,3 +193,11 @@ : [ opts.name ] | ||
if (lib.dependencies.length) { | ||
var deps = exports.wrap(lib.dependencies, { required : reqs }); | ||
var _deps = lib.dependencies.map(function (dep) { | ||
try { | ||
require.resolve(dep); | ||
return dep; | ||
} catch(e) { | ||
return require.resolve(path.dirname(require.resolve(name)) + '/node_modules/' + dep) | ||
} | ||
}); | ||
var deps = exports.wrap(_deps, { required : reqs }); | ||
reqs.push.apply(reqs, lib.dependencies); | ||
@@ -347,9 +358,4 @@ return lib.source + '\n' + deps.source; | ||
; | ||
function params (key) { | ||
return opts[key] | ||
|| (pkg.browserify && pkg.browserify[key]) | ||
|| pkg[key] | ||
} | ||
var main = params('main'); | ||
var main = opts.main || (pkg.browserify && pkg.browserify.main) || pkg.main; | ||
@@ -364,2 +370,41 @@ if (main && typeof pkg.browserify === 'object' | ||
var packages = files | ||
.filter(function (f) { | ||
return path.basename(f) === 'package.json' | ||
}) | ||
.reduce(function (acc, f) { | ||
acc[path.dirname(f)] = JSON.parse(fs.readFileSync(f, 'utf8')); | ||
return acc; | ||
}, {}) | ||
; | ||
function packageFor (file) { | ||
var parts = path.dirname(file).split('/'); | ||
while (parts.length) { | ||
var ps = parts.join('/'); | ||
parts.shift(); | ||
if (packages[ps]) { | ||
var p = packages[ps].browserify || packages[ps] || {}; | ||
if (!p.base) { | ||
p.base = ps; | ||
} | ||
else if (p.base.match(/^\./)) { | ||
p.base = (ps + p.base.slice(1)).replace(/\/\.\//g, '/'); | ||
} | ||
if (p.main && p.main.match(/^\./)) { | ||
p.main = (ps + p.main.slice(1)).replace(/\/\.\//g, '/'); | ||
} | ||
return p; | ||
} | ||
} | ||
return pkg.browserify || pkg || {}; | ||
} | ||
function paramFor (file, name) { | ||
return opts[name] || packageFor(file)[name] || pkg[name]; | ||
} | ||
var depSrc = pkg.browserify && pkg.browserify.require | ||
@@ -382,8 +427,14 @@ ? exports.wrap(pkg.browserify.require).source : ''; | ||
return exports.wrap(pkgname, { | ||
var p4 = packageFor(file); | ||
var p = Hash.merge({ | ||
filename : file, | ||
main : main, | ||
base : base, | ||
name : params('name'), | ||
}).source; | ||
main : paramFor(file, 'main') || main, | ||
base : paramFor(file, 'base') || base, | ||
name : opts.name || paramFor(file, 'name'), | ||
}, p4); | ||
if (opts.name && (p4 === pkg || p4 === packages[base])) { | ||
p.name = opts.name; | ||
} | ||
return exports.wrap(pkgname, p).source; | ||
}) | ||
@@ -390,0 +441,0 @@ .join('\n') |
{ | ||
"name" : "browserify", | ||
"version" : "0.3.7", | ||
"version" : "0.4.0", | ||
"description" : "Browser-side require() for js directories and npm modules", | ||
@@ -23,12 +23,12 @@ "main" : "./index.js", | ||
"dependencies" : { | ||
"findit" : ">=0.0.3", | ||
"source" : ">=0.0.3", | ||
"findit" : ">=0.0.3 <0.1", | ||
"source" : ">=0.0.3 <0.1", | ||
"es5-shim" : ">=1.0.0", | ||
"coffee-script" : ">=1.0.0", | ||
"coffee-script" : ">=1.1.1 <1.2", | ||
"hashish" : ">=0.0.2" | ||
}, | ||
"devDependencies" : { | ||
"connect" : ">=1.0.0", | ||
"seq" : ">=0.1.8", | ||
"traverse" : ">=0.3.1", | ||
"connect" : ">=1.4.1 <1.5", | ||
"seq" : ">=0.2.5 <0.3", | ||
"traverse" : ">=0.3.1 <0.4", | ||
"backbone" : ">=0.3.3", | ||
@@ -35,0 +35,0 @@ "dnode" : ">=0.6.2" |
@@ -1,1 +0,1 @@ | ||
module.exports = 8510 | ||
module.exports = 3880 |
@@ -25,2 +25,5 @@ function require (path) { | ||
require.resolve = function (basefile, file) { | ||
if (_browserifyRequire.modules[basefile + '/node_modules/' + file]) { | ||
return basefile + '/node_modules/' + file; | ||
} | ||
if (!file.match(/^[\.\/]/)) return file; | ||
@@ -27,0 +30,0 @@ if (file.match(/^\//)) return file; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
70823
71
1747
28
+ Addedchainsaw@0.0.9(transitive)
+ Addedcoffee-script@1.1.3(transitive)
+ Addedfindit@0.0.5(transitive)
+ Addedseq@0.3.5(transitive)
+ Addedtraverse@0.3.9(transitive)
- Removedcoffee-script@1.12.7(transitive)
- Removedfindit@2.0.0(transitive)
Updatedcoffee-script@>=1.1.1 <1.2
Updatedfindit@>=0.0.3 <0.1
Updatedsource@>=0.0.3 <0.1