less 4.4.2 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/lessc +67 -58
- package/dist/less.js +14496 -11811
- package/dist/less.min.js +4 -4
- package/dist/less.min.js.map +1 -1
- package/lib/less/constants.js +5 -7
- package/lib/less/contexts.js +71 -56
- package/lib/less/data/colors.js +150 -153
- package/lib/less/data/index.js +4 -7
- package/lib/less/data/unit-conversions.js +2 -5
- package/lib/less/default-options.js +52 -23
- package/lib/less/deprecation.js +67 -0
- package/lib/less/environment/abstract-file-manager.js +62 -50
- package/lib/less/environment/abstract-plugin-loader.js +69 -46
- package/lib/less/environment/environment-api.ts +21 -0
- package/lib/less/environment/environment.js +34 -30
- package/lib/less/environment/file-manager-api.ts +77 -0
- package/lib/less/functions/boolean.js +13 -13
- package/lib/less/functions/color-blending.js +39 -31
- package/lib/less/functions/color.js +153 -137
- package/lib/less/functions/data-uri.js +73 -64
- package/lib/less/functions/default.js +9 -11
- package/lib/less/functions/function-caller.js +35 -34
- package/lib/less/functions/function-registry.js +16 -17
- package/lib/less/functions/index.js +33 -33
- package/lib/less/functions/list.js +88 -75
- package/lib/less/functions/math-helper.js +8 -11
- package/lib/less/functions/math.js +21 -21
- package/lib/less/functions/number.js +42 -53
- package/lib/less/functions/string.js +18 -22
- package/lib/less/functions/style.js +21 -20
- package/lib/less/functions/svg.js +83 -82
- package/lib/less/functions/types.js +28 -32
- package/lib/less/import-manager.js +73 -64
- package/lib/less/index.js +65 -65
- package/lib/less/less-error.js +65 -46
- package/lib/less/logger.js +11 -14
- package/lib/less/parse-tree.js +94 -38
- package/lib/less/parse.js +44 -44
- package/lib/less/parser/parser-input.js +152 -131
- package/lib/less/parser/parser.js +866 -672
- package/lib/less/plugin-manager.js +57 -46
- package/lib/less/render.js +17 -23
- package/lib/less/source-map-builder.js +52 -43
- package/lib/less/source-map-output.js +57 -44
- package/lib/less/transform-tree.js +40 -30
- package/lib/less/tree/anonymous.js +52 -28
- package/lib/less/tree/assignment.js +44 -27
- package/lib/less/tree/atrule-syntax.js +4 -6
- package/lib/less/tree/atrule.js +247 -140
- package/lib/less/tree/attribute.js +55 -24
- package/lib/less/tree/call.js +70 -42
- package/lib/less/tree/color.js +194 -145
- package/lib/less/tree/combinator.js +31 -21
- package/lib/less/tree/comment.js +44 -23
- package/lib/less/tree/condition.js +61 -36
- package/lib/less/tree/container.js +90 -34
- package/lib/less/tree/debug-info.js +53 -11
- package/lib/less/tree/declaration.js +97 -52
- package/lib/less/tree/detached-ruleset.js +42 -24
- package/lib/less/tree/dimension.js +127 -71
- package/lib/less/tree/element.js +82 -52
- package/lib/less/tree/expression.js +75 -50
- package/lib/less/tree/extend.js +71 -42
- package/lib/less/tree/import.js +184 -110
- package/lib/less/tree/index.js +52 -81
- package/lib/less/tree/javascript.js +43 -32
- package/lib/less/tree/js-eval-node.js +46 -32
- package/lib/less/tree/keyword.js +25 -17
- package/lib/less/tree/media.js +77 -35
- package/lib/less/tree/merge-rules.js +47 -0
- package/lib/less/tree/mixin-call.js +181 -98
- package/lib/less/tree/mixin-definition.js +211 -117
- package/lib/less/tree/namespace-value.js +63 -44
- package/lib/less/tree/negative.js +34 -21
- package/lib/less/tree/nested-at-rule.js +149 -66
- package/lib/less/tree/node.js +225 -90
- package/lib/less/tree/operation.js +59 -34
- package/lib/less/tree/paren.js +34 -17
- package/lib/less/tree/property.js +66 -35
- package/lib/less/tree/query-in-parens.js +52 -60
- package/lib/less/tree/quoted.js +93 -44
- package/lib/less/tree/ruleset.js +632 -318
- package/lib/less/tree/selector.js +151 -77
- package/lib/less/tree/unicode-descriptor.js +14 -12
- package/lib/less/tree/unit.js +111 -63
- package/lib/less/tree/url.js +62 -38
- package/lib/less/tree/value.js +50 -34
- package/lib/less/tree/variable-call.js +47 -30
- package/lib/less/tree/variable.js +53 -31
- package/lib/less/utils.js +44 -47
- package/lib/less/visitors/extend-visitor.js +233 -172
- package/lib/less/visitors/import-sequencer.js +24 -24
- package/lib/less/visitors/import-visitor.js +62 -52
- package/lib/less/visitors/index.js +14 -17
- package/lib/less/visitors/join-selector-visitor.js +40 -37
- package/lib/less/visitors/set-tree-visibility-visitor.js +32 -18
- package/lib/less/visitors/to-css-visitor.js +135 -128
- package/lib/less/visitors/visitor.js +60 -45
- package/lib/less-browser/add-default-options.js +23 -13
- package/lib/less-browser/bootstrap.js +23 -17
- package/lib/less-browser/browser.js +24 -21
- package/lib/less-browser/cache.js +17 -19
- package/lib/less-browser/error-reporting.js +52 -44
- package/lib/less-browser/file-manager.js +52 -42
- package/lib/less-browser/image-size.js +12 -12
- package/lib/less-browser/index.js +131 -105
- package/lib/less-browser/log-listener.js +30 -31
- package/lib/less-browser/plugin-loader.js +10 -10
- package/lib/less-browser/utils.js +19 -21
- package/lib/less-node/environment.js +32 -8
- package/lib/less-node/file-manager.js +62 -45
- package/lib/less-node/fs.js +11 -8
- package/lib/less-node/image-size.js +40 -31
- package/lib/less-node/index.js +28 -19
- package/lib/less-node/lessc-helper.js +28 -28
- package/lib/less-node/plugin-loader.js +35 -27
- package/lib/less-node/url-file-manager.js +33 -31
- package/package.json +31 -19
- package/.eslintignore +0 -6
- package/.eslintrc.js +0 -63
- package/Gruntfile.js +0 -404
- package/bower.json +0 -22
- package/lib/less/constants.js.map +0 -1
- package/lib/less/contexts.js.map +0 -1
- package/lib/less/data/colors.js.map +0 -1
- package/lib/less/data/index.js.map +0 -1
- package/lib/less/data/unit-conversions.js.map +0 -1
- package/lib/less/default-options.js.map +0 -1
- package/lib/less/environment/abstract-file-manager.js.map +0 -1
- package/lib/less/environment/abstract-plugin-loader.js.map +0 -1
- package/lib/less/environment/environment-api.js +0 -3
- package/lib/less/environment/environment-api.js.map +0 -1
- package/lib/less/environment/environment.js.map +0 -1
- package/lib/less/environment/file-manager-api.js +0 -3
- package/lib/less/environment/file-manager-api.js.map +0 -1
- package/lib/less/functions/boolean.js.map +0 -1
- package/lib/less/functions/color-blending.js.map +0 -1
- package/lib/less/functions/color.js.map +0 -1
- package/lib/less/functions/data-uri.js.map +0 -1
- package/lib/less/functions/default.js.map +0 -1
- package/lib/less/functions/function-caller.js.map +0 -1
- package/lib/less/functions/function-registry.js.map +0 -1
- package/lib/less/functions/index.js.map +0 -1
- package/lib/less/functions/list.js.map +0 -1
- package/lib/less/functions/math-helper.js.map +0 -1
- package/lib/less/functions/math.js.map +0 -1
- package/lib/less/functions/number.js.map +0 -1
- package/lib/less/functions/string.js.map +0 -1
- package/lib/less/functions/style.js.map +0 -1
- package/lib/less/functions/svg.js.map +0 -1
- package/lib/less/functions/types.js.map +0 -1
- package/lib/less/import-manager.js.map +0 -1
- package/lib/less/index.js.map +0 -1
- package/lib/less/less-error.js.map +0 -1
- package/lib/less/logger.js.map +0 -1
- package/lib/less/parse-tree.js.map +0 -1
- package/lib/less/parse.js.map +0 -1
- package/lib/less/parser/chunker.js +0 -148
- package/lib/less/parser/chunker.js.map +0 -1
- package/lib/less/parser/parser-input.js.map +0 -1
- package/lib/less/parser/parser.js.map +0 -1
- package/lib/less/plugin-manager.js.map +0 -1
- package/lib/less/render.js.map +0 -1
- package/lib/less/source-map-builder.js.map +0 -1
- package/lib/less/source-map-output.js.map +0 -1
- package/lib/less/transform-tree.js.map +0 -1
- package/lib/less/tree/anonymous.js.map +0 -1
- package/lib/less/tree/assignment.js.map +0 -1
- package/lib/less/tree/atrule-syntax.js.map +0 -1
- package/lib/less/tree/atrule.js.map +0 -1
- package/lib/less/tree/attribute.js.map +0 -1
- package/lib/less/tree/call.js.map +0 -1
- package/lib/less/tree/color.js.map +0 -1
- package/lib/less/tree/combinator.js.map +0 -1
- package/lib/less/tree/comment.js.map +0 -1
- package/lib/less/tree/condition.js.map +0 -1
- package/lib/less/tree/container.js.map +0 -1
- package/lib/less/tree/debug-info.js.map +0 -1
- package/lib/less/tree/declaration.js.map +0 -1
- package/lib/less/tree/detached-ruleset.js.map +0 -1
- package/lib/less/tree/dimension.js.map +0 -1
- package/lib/less/tree/element.js.map +0 -1
- package/lib/less/tree/expression.js.map +0 -1
- package/lib/less/tree/extend.js.map +0 -1
- package/lib/less/tree/import.js.map +0 -1
- package/lib/less/tree/index.js.map +0 -1
- package/lib/less/tree/javascript.js.map +0 -1
- package/lib/less/tree/js-eval-node.js.map +0 -1
- package/lib/less/tree/keyword.js.map +0 -1
- package/lib/less/tree/media.js.map +0 -1
- package/lib/less/tree/mixin-call.js.map +0 -1
- package/lib/less/tree/mixin-definition.js.map +0 -1
- package/lib/less/tree/namespace-value.js.map +0 -1
- package/lib/less/tree/negative.js.map +0 -1
- package/lib/less/tree/nested-at-rule.js.map +0 -1
- package/lib/less/tree/node.js.map +0 -1
- package/lib/less/tree/operation.js.map +0 -1
- package/lib/less/tree/paren.js.map +0 -1
- package/lib/less/tree/property.js.map +0 -1
- package/lib/less/tree/query-in-parens.js.map +0 -1
- package/lib/less/tree/quoted.js.map +0 -1
- package/lib/less/tree/ruleset.js.map +0 -1
- package/lib/less/tree/selector.js.map +0 -1
- package/lib/less/tree/unicode-descriptor.js.map +0 -1
- package/lib/less/tree/unit.js.map +0 -1
- package/lib/less/tree/url.js.map +0 -1
- package/lib/less/tree/value.js.map +0 -1
- package/lib/less/tree/variable-call.js.map +0 -1
- package/lib/less/tree/variable.js.map +0 -1
- package/lib/less/utils.js.map +0 -1
- package/lib/less/visitors/extend-visitor.js.map +0 -1
- package/lib/less/visitors/import-sequencer.js.map +0 -1
- package/lib/less/visitors/import-visitor.js.map +0 -1
- package/lib/less/visitors/index.js.map +0 -1
- package/lib/less/visitors/join-selector-visitor.js.map +0 -1
- package/lib/less/visitors/set-tree-visibility-visitor.js.map +0 -1
- package/lib/less/visitors/to-css-visitor.js.map +0 -1
- package/lib/less/visitors/visitor.js.map +0 -1
- package/lib/less-browser/add-default-options.js.map +0 -1
- package/lib/less-browser/bootstrap.js.map +0 -1
- package/lib/less-browser/browser.js.map +0 -1
- package/lib/less-browser/cache.js.map +0 -1
- package/lib/less-browser/error-reporting.js.map +0 -1
- package/lib/less-browser/file-manager.js.map +0 -1
- package/lib/less-browser/image-size.js.map +0 -1
- package/lib/less-browser/index.js.map +0 -1
- package/lib/less-browser/log-listener.js.map +0 -1
- package/lib/less-browser/plugin-loader.js.map +0 -1
- package/lib/less-browser/utils.js.map +0 -1
- package/lib/less-node/environment.js.map +0 -1
- package/lib/less-node/file-manager.js.map +0 -1
- package/lib/less-node/fs.js.map +0 -1
- package/lib/less-node/image-size.js.map +0 -1
- package/lib/less-node/index.js.map +0 -1
- package/lib/less-node/lessc-helper.js.map +0 -1
- package/lib/less-node/plugin-loader.js.map +0 -1
- package/lib/less-node/url-file-manager.js.map +0 -1
- package/test/.eslintrc.json +0 -9
- package/test/README.md +0 -3
- package/test/browser/common.js +0 -230
- package/test/browser/css/global-vars/simple.css +0 -3
- package/test/browser/css/modify-vars/simple.css +0 -8
- package/test/browser/css/plugin/plugin.css +0 -3
- package/test/browser/css/postProcessor/postProcessor.css +0 -4
- package/test/browser/css/relative-urls/urls.css +0 -36
- package/test/browser/css/rewrite-urls/urls.css +0 -36
- package/test/browser/css/rootpath/urls.css +0 -35
- package/test/browser/css/rootpath-relative/urls.css +0 -35
- package/test/browser/css/rootpath-rewrite-urls/urls.css +0 -35
- package/test/browser/css/urls.css +0 -54
- package/test/browser/generator/benchmark.config.js +0 -50
- package/test/browser/generator/generate.js +0 -78
- package/test/browser/generator/runner.config.js +0 -188
- package/test/browser/generator/runner.js +0 -2
- package/test/browser/generator/template.js +0 -93
- package/test/browser/generator/utils.js +0 -14
- package/test/browser/less/console-errors/test-error.less +0 -3
- package/test/browser/less/console-errors/test-error.txt +0 -2
- package/test/browser/less/errors/image-height-error.less +0 -3
- package/test/browser/less/errors/image-height-error.txt +0 -4
- package/test/browser/less/errors/image-size-error.less +0 -3
- package/test/browser/less/errors/image-size-error.txt +0 -4
- package/test/browser/less/errors/image-width-error.less +0 -3
- package/test/browser/less/errors/image-width-error.txt +0 -4
- package/test/browser/less/global-vars/simple.less +0 -3
- package/test/browser/less/imports/urls.less +0 -4
- package/test/browser/less/imports/urls2.less +0 -4
- package/test/browser/less/modify-vars/imports/simple2.less +0 -4
- package/test/browser/less/modify-vars/simple.less +0 -8
- package/test/browser/less/nested-gradient-with-svg-gradient/mixin-consumer.less +0 -5
- package/test/browser/less/nested-gradient-with-svg-gradient/svg-gradient-mixin.less +0 -15
- package/test/browser/less/plugin/plugin.js +0 -4
- package/test/browser/less/plugin/plugin.less +0 -4
- package/test/browser/less/postProcessor/postProcessor.less +0 -4
- package/test/browser/less/relative-urls/urls.less +0 -34
- package/test/browser/less/rewrite-urls/urls.less +0 -34
- package/test/browser/less/rootpath/urls.less +0 -33
- package/test/browser/less/rootpath-relative/urls.less +0 -33
- package/test/browser/less/rootpath-rewrite-urls/urls.less +0 -33
- package/test/browser/less/urls.less +0 -62
- package/test/browser/runner-VisitorPlugin-options.js +0 -3
- package/test/browser/runner-VisitorPlugin.js +0 -3
- package/test/browser/runner-browser-options.js +0 -51
- package/test/browser/runner-browser-spec.js +0 -12
- package/test/browser/runner-console-errors.js +0 -5
- package/test/browser/runner-errors-options.js +0 -6
- package/test/browser/runner-errors-spec.js +0 -3
- package/test/browser/runner-filemanagerPlugin-options.js +0 -5
- package/test/browser/runner-filemanagerPlugin.js +0 -3
- package/test/browser/runner-global-vars-options.js +0 -7
- package/test/browser/runner-global-vars-spec.js +0 -3
- package/test/browser/runner-legacy-options.js +0 -6
- package/test/browser/runner-legacy-spec.js +0 -3
- package/test/browser/runner-main-options.js +0 -17
- package/test/browser/runner-main-spec.js +0 -7
- package/test/browser/runner-modify-vars-options.js +0 -5
- package/test/browser/runner-modify-vars-spec.js +0 -33
- package/test/browser/runner-no-js-errors-options.js +0 -4
- package/test/browser/runner-no-js-errors-spec.js +0 -3
- package/test/browser/runner-postProcessorPlugin-options.js +0 -3
- package/test/browser/runner-postProcessorPlugin.js +0 -3
- package/test/browser/runner-preProcessorPlugin-options.js +0 -3
- package/test/browser/runner-preProcessorPlugin.js +0 -3
- package/test/browser/runner-production-options.js +0 -3
- package/test/browser/runner-production-spec.js +0 -5
- package/test/browser/runner-relative-urls-options.js +0 -3
- package/test/browser/runner-relative-urls-spec.js +0 -3
- package/test/browser/runner-rewrite-urls-options.js +0 -3
- package/test/browser/runner-rewrite-urls-spec.js +0 -3
- package/test/browser/runner-rootpath-options.js +0 -3
- package/test/browser/runner-rootpath-relative-options.js +0 -4
- package/test/browser/runner-rootpath-relative-spec.js +0 -3
- package/test/browser/runner-rootpath-rewrite-urls-options.js +0 -4
- package/test/browser/runner-rootpath-rewrite-urls-spec.js +0 -3
- package/test/browser/runner-rootpath-spec.js +0 -3
- package/test/browser/runner-strict-units-options.js +0 -5
- package/test/browser/runner-strict-units-spec.js +0 -3
- package/test/index.js +0 -112
- package/test/less-test.js +0 -625
- package/test/mocha-playwright/runner.js +0 -210
- package/test/modify-vars.js +0 -28
- package/test/plugins/filemanager/index.js +0 -19
- package/test/plugins/postprocess/index.js +0 -14
- package/test/plugins/preprocess/index.js +0 -19
- package/test/plugins/visitor/index.js +0 -24
- package/test/sourcemaps/basic.json +0 -1
- package/test/sourcemaps/custom-props.json +0 -1
- package/test/sourcemaps/index.html +0 -17
- package/test/sourcemaps-disable-annotation/basic.json +0 -1
- package/test/sourcemaps-variable-selector/basic.json +0 -1
- package/test/test-es6.ts +0 -17
- package/tsconfig.build.json +0 -7
- package/tsconfig.json +0 -21
package/bin/lessc
CHANGED
|
@@ -2,18 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
/* eslint indent: [2, 2, {"SwitchCase": 1}] */
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import os from 'os';
|
|
7
|
+
import { createRequire } from 'module';
|
|
8
|
+
import fs from '../lib/less-node/fs.js';
|
|
9
|
+
import * as utils from '../lib/less/utils.js';
|
|
10
|
+
import * as Constants from '../lib/less/constants.js';
|
|
11
|
+
import less from '../lib/less-node/index.js';
|
|
6
12
|
|
|
7
|
-
|
|
8
|
-
var fs = require('../lib/less-node/fs').default;
|
|
9
|
-
var os = require('os');
|
|
10
|
-
var utils = require('../lib/less/utils');
|
|
11
|
-
var Constants = require('../lib/less/constants');
|
|
12
|
-
|
|
13
|
-
var less = require('../lib/less-node').default;
|
|
13
|
+
const require = createRequire(import.meta.url);
|
|
14
14
|
|
|
15
15
|
var errno;
|
|
16
|
-
var mkdirp;
|
|
17
16
|
|
|
18
17
|
try {
|
|
19
18
|
errno = require('errno');
|
|
@@ -65,6 +64,7 @@ var parseVariableOption = function parseVariableOption(option, variables) {
|
|
|
65
64
|
};
|
|
66
65
|
|
|
67
66
|
var sourceMapFileInline = false;
|
|
67
|
+
var pendingDeprecations = [];
|
|
68
68
|
|
|
69
69
|
function printUsage() {
|
|
70
70
|
less.lesscHelper.printUsage();
|
|
@@ -98,53 +98,48 @@ function render() {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
if (options.sourceMap) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (!sourceMapOptions.sourceMapFullFilename) {
|
|
104
|
-
if (!output && !sourceMapFileInline) {
|
|
105
|
-
console.error('the sourcemap option only has an optional filename if the css filename is given');
|
|
106
|
-
console.error('consider adding --source-map-map-inline which embeds the sourcemap into the css');
|
|
107
|
-
process.exitCode = 1;
|
|
108
|
-
return;
|
|
109
|
-
} // its in the same directory, so always just the basename
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
if (output) {
|
|
113
|
-
sourceMapOptions.sourceMapOutputFilename = path.basename(output);
|
|
114
|
-
sourceMapOptions.sourceMapFullFilename = ''.concat(output, '.map');
|
|
115
|
-
} // its in the same directory, so always just the basename
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if ('sourceMapFullFilename' in sourceMapOptions) {
|
|
119
|
-
sourceMapOptions.sourceMapFilename = path.basename(sourceMapOptions.sourceMapFullFilename);
|
|
120
|
-
}
|
|
121
|
-
} else if (options.sourceMap && !sourceMapFileInline) {
|
|
122
|
-
var mapFilename = path.resolve(process.cwd(), sourceMapOptions.sourceMapFullFilename);
|
|
123
|
-
var mapDir = path.dirname(mapFilename);
|
|
124
|
-
var outputDir = path.dirname(output); // find the path from the map to the output file
|
|
125
|
-
|
|
126
|
-
// eslint-disable-next-line max-len
|
|
127
|
-
sourceMapOptions.sourceMapOutputFilename = path.join(path.relative(mapDir, outputDir), path.basename(output)); // make the sourcemap filename point to the sourcemap relative to the css file output directory
|
|
128
|
-
|
|
129
|
-
sourceMapOptions.sourceMapFilename = path.join(path.relative(outputDir, mapDir), path.basename(sourceMapOptions.sourceMapFullFilename));
|
|
130
|
-
}
|
|
131
|
-
|
|
101
|
+
// Validate conflicting options
|
|
132
102
|
if (sourceMapOptions.sourceMapURL && sourceMapOptions.disableSourcemapAnnotation) {
|
|
133
103
|
console.error('You cannot provide flag --source-map-url with --source-map-no-annotation.');
|
|
134
104
|
console.error('Please remove one of those flags.');
|
|
135
105
|
process.exitcode = 1;
|
|
136
106
|
return;
|
|
137
107
|
}
|
|
138
|
-
}
|
|
139
108
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
109
|
+
// Handle explicit sourceMapFullFilename (from --source-map=filename)
|
|
110
|
+
// Normalization of other options (sourceMapBasepath, sourceMapRootpath, etc.)
|
|
111
|
+
// is handled automatically in parse-tree.js
|
|
112
|
+
if (sourceMapOptions.sourceMapFullFilename && !sourceMapFileInline) {
|
|
113
|
+
var mapFilename = path.resolve(process.cwd(), sourceMapOptions.sourceMapFullFilename);
|
|
114
|
+
var mapDir = path.dirname(mapFilename);
|
|
143
115
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
116
|
+
if (output) {
|
|
117
|
+
var outputDir = path.dirname(output);
|
|
118
|
+
// Set sourceMapOutputFilename relative to map directory
|
|
119
|
+
sourceMapOptions.sourceMapOutputFilename = path.join(
|
|
120
|
+
path.relative(mapDir, outputDir),
|
|
121
|
+
path.basename(output)
|
|
122
|
+
);
|
|
123
|
+
// Set sourceMapFilename relative to output directory (for sourceMappingURL comment)
|
|
124
|
+
sourceMapOptions.sourceMapFilename = path.join(
|
|
125
|
+
path.relative(outputDir, mapDir),
|
|
126
|
+
path.basename(sourceMapOptions.sourceMapFullFilename)
|
|
127
|
+
);
|
|
128
|
+
} else {
|
|
129
|
+
// No output filename, just use basename
|
|
130
|
+
sourceMapOptions.sourceMapOutputFilename = path.basename(output || 'output.css');
|
|
131
|
+
sourceMapOptions.sourceMapFilename = path.basename(sourceMapOptions.sourceMapFullFilename);
|
|
132
|
+
}
|
|
133
|
+
} else if (!sourceMapOptions.sourceMapFullFilename && output && !sourceMapFileInline) {
|
|
134
|
+
// No explicit sourcemap filename, derive from output
|
|
135
|
+
sourceMapOptions.sourceMapOutputFilename = path.basename(output);
|
|
136
|
+
sourceMapOptions.sourceMapFullFilename = ''.concat(output, '.map');
|
|
137
|
+
} else if (!output && !sourceMapFileInline) {
|
|
138
|
+
console.error('the sourcemap option only has an optional filename if the css filename is given');
|
|
139
|
+
console.error('consider adding --source-map-map-inline which embeds the sourcemap into the css');
|
|
140
|
+
process.exitCode = 1;
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
148
143
|
}
|
|
149
144
|
|
|
150
145
|
if (!input) {
|
|
@@ -155,6 +150,7 @@ function render() {
|
|
|
155
150
|
return;
|
|
156
151
|
}
|
|
157
152
|
|
|
153
|
+
var mkdirp;
|
|
158
154
|
var ensureDirectory = function ensureDirectory(filepath) {
|
|
159
155
|
var dir = path.dirname(filepath);
|
|
160
156
|
var cmd;
|
|
@@ -193,7 +189,7 @@ function render() {
|
|
|
193
189
|
|
|
194
190
|
// To fix https://github.com/less/less.js/issues/3646
|
|
195
191
|
output = output.toString();
|
|
196
|
-
|
|
192
|
+
|
|
197
193
|
fs.writeFile(filename, output, 'utf8', function (err) {
|
|
198
194
|
if (err) {
|
|
199
195
|
var description = 'Error: ';
|
|
@@ -408,11 +404,15 @@ function processPluginQueue() {
|
|
|
408
404
|
case 'silent':
|
|
409
405
|
options.silent = silent = true;
|
|
410
406
|
break;
|
|
411
|
-
|
|
407
|
+
|
|
412
408
|
case 'quiet':
|
|
413
409
|
options.quiet = quiet = true;
|
|
414
410
|
break;
|
|
415
411
|
|
|
412
|
+
case 'quiet-deprecations':
|
|
413
|
+
options.quietDeprecations = true;
|
|
414
|
+
break;
|
|
415
|
+
|
|
416
416
|
case 'l':
|
|
417
417
|
case 'lint':
|
|
418
418
|
options.lint = true;
|
|
@@ -458,6 +458,7 @@ function processPluginQueue() {
|
|
|
458
458
|
|
|
459
459
|
case 'js':
|
|
460
460
|
options.javascriptEnabled = true;
|
|
461
|
+
pendingDeprecations.push('Warning: Inline JavaScript (--js) is deprecated and will be removed in Less 5.x. Use Less functions or custom plugins instead. (js-eval)');
|
|
461
462
|
break;
|
|
462
463
|
|
|
463
464
|
case 'no-js':
|
|
@@ -481,6 +482,7 @@ function processPluginQueue() {
|
|
|
481
482
|
case 'line-numbers':
|
|
482
483
|
if (checkArgFunc(arg, match[2])) {
|
|
483
484
|
options.dumpLineNumbers = match[2];
|
|
485
|
+
pendingDeprecations.push('Warning: The --line-numbers option is deprecated and will be removed in Less 5.x. Use source maps instead (--source-map). (dump-line-numbers)');
|
|
484
486
|
}
|
|
485
487
|
|
|
486
488
|
break;
|
|
@@ -537,13 +539,13 @@ function processPluginQueue() {
|
|
|
537
539
|
}
|
|
538
540
|
|
|
539
541
|
break;
|
|
540
|
-
|
|
542
|
+
|
|
541
543
|
case 'ie-compat':
|
|
542
|
-
|
|
544
|
+
pendingDeprecations.push('Warning: The --ie-compat option is deprecated, as it has no effect on compilation.');
|
|
543
545
|
break;
|
|
544
546
|
|
|
545
547
|
case 'relative-urls':
|
|
546
|
-
|
|
548
|
+
pendingDeprecations.push('Warning: The --relative-urls option has been deprecated. Use --rewrite-urls=all.');
|
|
547
549
|
options.rewriteUrls = Constants.RewriteUrls.ALL;
|
|
548
550
|
break;
|
|
549
551
|
|
|
@@ -571,7 +573,7 @@ function processPluginQueue() {
|
|
|
571
573
|
|
|
572
574
|
case 'sm':
|
|
573
575
|
case 'strict-math':
|
|
574
|
-
|
|
576
|
+
pendingDeprecations.push('Warning: The --strict-math option has been deprecated. Use --math=strict.');
|
|
575
577
|
|
|
576
578
|
if (checkArgFunc(arg, match[2])) {
|
|
577
579
|
if (checkBooleanArg(match[2])) {
|
|
@@ -586,14 +588,14 @@ function processPluginQueue() {
|
|
|
586
588
|
let m = match[2];
|
|
587
589
|
if (checkArgFunc(arg, m)) {
|
|
588
590
|
if (m === 'always') {
|
|
589
|
-
|
|
591
|
+
pendingDeprecations.push('Warning: --math=always is deprecated and will be removed in Less 5.x. Use --math=parens-division (default) or --math=parens. (math-always)');
|
|
590
592
|
options.math = Constants.Math.ALWAYS;
|
|
591
593
|
} else if (m === 'parens-division') {
|
|
592
594
|
options.math = Constants.Math.PARENS_DIVISION;
|
|
593
595
|
} else if (m === 'parens' || m === 'strict') {
|
|
594
596
|
options.math = Constants.Math.PARENS;
|
|
595
597
|
} else if (m === 'strict-legacy') {
|
|
596
|
-
|
|
598
|
+
pendingDeprecations.push('Warning: --math=strict-legacy has been removed. Defaulting to --math=strict.');
|
|
597
599
|
options.math = Constants.Math.PARENS;
|
|
598
600
|
}
|
|
599
601
|
}
|
|
@@ -650,7 +652,7 @@ function processPluginQueue() {
|
|
|
650
652
|
case 'disable-plugin-rule':
|
|
651
653
|
options.disablePluginRule = true;
|
|
652
654
|
break;
|
|
653
|
-
|
|
655
|
+
|
|
654
656
|
default:
|
|
655
657
|
queuePlugins.push({
|
|
656
658
|
name: arg,
|
|
@@ -661,9 +663,16 @@ function processPluginQueue() {
|
|
|
661
663
|
}
|
|
662
664
|
});
|
|
663
665
|
|
|
666
|
+
// Flush queued deprecation warnings (respects --silent, --quiet, --quiet-deprecations)
|
|
667
|
+
if (!silent && !quiet && !options.quietDeprecations) {
|
|
668
|
+
pendingDeprecations.forEach(function (msg) {
|
|
669
|
+
console.warn(msg);
|
|
670
|
+
});
|
|
671
|
+
}
|
|
672
|
+
|
|
664
673
|
if (queuePlugins.length > 0) {
|
|
665
674
|
processPluginQueue();
|
|
666
675
|
} else {
|
|
667
676
|
render();
|
|
668
677
|
}
|
|
669
|
-
})();
|
|
678
|
+
})();
|