browserify-css
Advanced tools
Comparing version 0.8.0 to 0.8.1
@@ -9,2 +9,3 @@ 'use strict'; | ||
var concat = require('concat-stream'); | ||
var findNodeModules = require('find-node-modules'); | ||
@@ -23,34 +24,27 @@ var isExternalURL = function(path) { | ||
// Resolves the import path that starts with node_modules. | ||
// Finds the the import path from parent node_modules. | ||
// @see {@link https://github.com/cheton/browserify-css/pull/21} for further information. | ||
var resolveNodeModuleDir = function(baseDir, importPath) { | ||
var findImportPathInNodeModules = function(baseDir, importPath) { | ||
var parts = importPath.split('/'); | ||
var resolvePath = baseDir; | ||
var modulePath = ''; | ||
var pathname = path.join(baseDir, importPath); | ||
if (parts[0] === 'node_modules') { | ||
modulePath = _.rest(parts).join('/'); // Gets all but the first element of array | ||
// Gets all but the first element of array (i.e. node_modules). | ||
importPath = _.rest(parts).join('/'); | ||
} | ||
if (!modulePath) { | ||
return path.join(baseDir, importPath); | ||
} | ||
// Returns an array of all parent node_modules directories. | ||
var dirs = findNodeModules({ | ||
cwd: baseDir, | ||
relative: false | ||
}); | ||
resolvePath = path.join(resolvePath, 'node_modules'); | ||
while (1) { | ||
if (fs.existsSync(path.join(resolvePath, modulePath))) { | ||
return path.join(resolvePath, modulePath); | ||
_.forEach(dirs, function(dir) { | ||
if (fs.existsSync(path.join(dir, importPath))) { | ||
pathname = path.join(dir, importPath); | ||
return false; // Exits iteration by returning false. | ||
} | ||
}); | ||
resolvePath = path.resolve(resolvePath, '..'); | ||
// move up the chain until we are no longer in a node module | ||
if (!(resolvePath.match(/node_modules/))) { | ||
break; | ||
} | ||
} | ||
return path.join(baseDir, importPath); | ||
return pathname; | ||
}; | ||
@@ -152,3 +146,3 @@ | ||
var dirname = path.dirname(filename); | ||
var absFilename; | ||
var pathname; | ||
@@ -158,14 +152,14 @@ // if the path starts with node_modules, search up the tree to find the module | ||
if (isNodeModulePath(url)) { | ||
absFilename = resolveNodeModuleDir(dirname, url); | ||
pathname = findImportPathInNodeModules(dirname, url); | ||
} else if (isRelativePath(url)) { // relative path | ||
absFilename = path.resolve(dirname, url); | ||
pathname = path.resolve(dirname, url); | ||
} else { // absolute path | ||
absFilename = path.join(rootDir, url); | ||
pathname = path.join(rootDir, url); | ||
} | ||
if (that && typeof that.emit === 'function') { | ||
that.emit('file', absFilename); | ||
that.emit('file', pathname); | ||
} | ||
parseCSSFile(absFilename); | ||
parseCSSFile(pathname); | ||
@@ -172,0 +166,0 @@ } else { |
{ | ||
"name": "browserify-css", | ||
"version": "0.8.0", | ||
"version": "0.8.1", | ||
"description": "A Browserify transform for bundling, rebasing, inlining, and minifying CSS files", | ||
@@ -33,2 +33,3 @@ "main": "./index.js", | ||
"css": "1.6.x", | ||
"find-node-modules": "^1.0.1", | ||
"lodash": "3.6.x", | ||
@@ -35,0 +36,0 @@ "through2": "0.6.x" |
Sorry, the diff of this file is too big to display
77
2077935
6
19564
+ Addedfind-node-modules@^1.0.1
+ Addedarr-diff@2.0.0(transitive)
+ Addedarr-flatten@1.1.0(transitive)
+ Addedarray-unique@0.2.1(transitive)
+ Addedbraces@1.8.5(transitive)
+ Addeddetect-file@0.1.0(transitive)
+ Addedexpand-brackets@0.1.5(transitive)
+ Addedexpand-range@1.8.2(transitive)
+ Addedexpand-tilde@1.2.2(transitive)
+ Addedextglob@0.3.2(transitive)
+ Addedfilename-regex@2.0.1(transitive)
+ Addedfill-range@2.2.4(transitive)
+ Addedfind-node-modules@1.0.4(transitive)
+ Addedfindup-sync@0.4.2(transitive)
+ Addedfor-in@1.0.2(transitive)
+ Addedfor-own@0.1.5(transitive)
+ Addedfs-exists-sync@0.1.0(transitive)
+ Addedglob-base@0.3.0(transitive)
+ Addedglob-parent@2.0.0(transitive)
+ Addedglobal-modules@0.2.3(transitive)
+ Addedglobal-prefix@0.1.5(transitive)
+ Addedhomedir-polyfill@1.0.3(transitive)
+ Addedini@1.3.8(transitive)
+ Addedis-buffer@1.1.6(transitive)
+ Addedis-dotfile@1.0.3(transitive)
+ Addedis-equal-shallow@0.1.3(transitive)
+ Addedis-extendable@0.1.1(transitive)
+ Addedis-extglob@1.0.0(transitive)
+ Addedis-glob@2.0.1(transitive)
+ Addedis-number@2.1.04.0.0(transitive)
+ Addedis-posix-bracket@0.1.1(transitive)
+ Addedis-primitive@2.0.0(transitive)
+ Addedis-windows@0.2.0(transitive)
+ Addedisarray@1.0.0(transitive)
+ Addedisexe@2.0.0(transitive)
+ Addedisobject@2.1.0(transitive)
+ Addedkind-of@3.2.26.0.3(transitive)
+ Addedmath-random@1.0.4(transitive)
+ Addedmerge@1.2.1(transitive)
+ Addedmicromatch@2.3.11(transitive)
+ Addednormalize-path@2.1.1(transitive)
+ Addedobject.omit@2.0.1(transitive)
+ Addedos-homedir@1.0.2(transitive)
+ Addedparse-glob@3.0.4(transitive)
+ Addedparse-passwd@1.0.0(transitive)
+ Addedpreserve@0.2.0(transitive)
+ Addedrandomatic@3.1.1(transitive)
+ Addedregex-cache@0.4.4(transitive)
+ Addedremove-trailing-separator@1.1.0(transitive)
+ Addedrepeat-element@1.1.4(transitive)
+ Addedrepeat-string@1.6.1(transitive)
+ Addedresolve-dir@0.1.1(transitive)
+ Addedwhich@1.3.1(transitive)