diff --git a/lib/less-node/plugin-loader.js b/lib/less-node/plugin-loader.js index 48b60781..0144270f 100644 --- a/lib/less-node/plugin-loader.js +++ b/lib/less-node/plugin-loader.js @@ -17,7 +17,7 @@ PluginLoader.prototype.tryImportPlugin = function(resolvedFileName) { } if (plugin.minVersion) { if (this.compareVersion(plugin.minVersion, this.less.version) < 0) { - console.log("plugin " + name + " requires version " + this.versionToString(plugin.minVersion)); + console.log("plugin at" + resolvedFileName + " requires version " + this.versionToString(plugin.minVersion)); return null; } } diff --git a/lib/less/environment/abstract-file-manager.js b/lib/less/environment/abstract-file-manager.js index 9a04462d..037eac8e 100644 --- a/lib/less/environment/abstract-file-manager.js +++ b/lib/less/environment/abstract-file-manager.js @@ -15,9 +15,10 @@ abstractFileManager.prototype.getPath = function (filename) { } return filename.slice(0, j + 1); }; + abstractFileManager.prototype.tryAppendExtension = function(path, ext) { return /(\.[a-z]*$)|([\?;].*)$/.test(path) ? path : path + ext; -} +}; abstractFileManager.prototype.tryAppendLessExtension = function(path) { return this.tryAppendExtension(path, '.less'); diff --git a/lib/less/import-manager.js b/lib/less/import-manager.js index 8f67210d..30f0eec4 100644 --- a/lib/less/import-manager.js +++ b/lib/less/import-manager.js @@ -65,10 +65,10 @@ module.exports = function(environment) { } if (importOptions.plugin) { - path = fileManager.tryAppendExtension(path, '.js'); - var resolvedFilename = !fileManager.isPathAbsolute(path) - ? fileManager.join(currentFileInfo.currentDirectory, path) - : path; + var resolvedFilename = fileManager.tryAppendExtension(path, '.js'); + if (!fileManager.isPathAbsolute(path)) { + resolvedFilename = fileManager.join(currentFileInfo.currentDirectory, resolvedFilename); + } try { this.context.pluginManager.importPlugin(resolvedFilename); fileParsedFunc(null, "", resolvedFilename); diff --git a/test/css/import-plugin.css b/test/css/import-plugin.css new file mode 100644 index 00000000..206a2f11 --- /dev/null +++ b/test/css/import-plugin.css @@ -0,0 +1,3 @@ +.test { + result: OK; +} diff --git a/test/less/import-plugin.less b/test/less/import-plugin.less new file mode 100644 index 00000000..aae22cbc --- /dev/null +++ b/test/less/import-plugin.less @@ -0,0 +1,5 @@ +@import (plugin) "import/plugins/test"; + +.test { + result : test() +} \ No newline at end of file diff --git a/test/less/import/plugins/test.js b/test/less/import/plugins/test.js new file mode 100644 index 00000000..e353168e --- /dev/null +++ b/test/less/import/plugins/test.js @@ -0,0 +1,7 @@ +module.exports = { + install : function( less, pluginManager ) { + less.functions.functionRegistry.add( "test", function() { + return new less.tree.Anonymous( "OK" ); + }); + } +} \ No newline at end of file