less 4.5.1 → 4.6.1
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/README.md +70 -5
- package/bin/lessc +37 -23
- package/dist/less.js +14501 -11745
- package/dist/less.min.js +4 -4
- package/dist/less.min.js.map +1 -1
- package/index.cjs +41 -0
- package/lib/less/constants.js +5 -7
- package/lib/less/contexts.js +71 -55
- 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 +36 -26
- 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 +63 -45
- package/lib/less/logger.js +11 -14
- package/lib/less/parse-tree.js +52 -53
- package/lib/less/parse.js +44 -44
- package/lib/less/parser/parser-input.js +151 -113
- package/lib/less/parser/parser.js +864 -658
- 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 +56 -43
- 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 +28 -15
- 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 +20 -21
- package/lib/less-node/plugin-loader.js +35 -27
- package/lib/less-node/url-file-manager.js +33 -31
- package/package.json +29 -18
- package/.eslintignore +0 -6
- package/.eslintrc.js +0 -63
- package/Gruntfile.js +0 -403
- 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/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/scripts/coverage-lines.js +0 -207
- package/scripts/coverage-report.js +0 -158
- package/scripts/postinstall.js +0 -61
- package/test/.eslintrc.json +0 -9
- package/test/README.md +0 -3
- package/test/browser/common.js +0 -251
- 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 -184
- package/test/browser/generator/runner.js +0 -2
- package/test/browser/generator/template.js +0 -104
- 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-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 -307
- package/test/less-test.js +0 -984
- 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/comprehensive.json +0 -1
- package/test/sourcemaps/custom-props.json +0 -1
- package/test/sourcemaps/index.html +0 -17
- package/test/sourcemaps/sourcemaps-basepath.json +0 -1
- package/test/sourcemaps/sourcemaps-include-source.json +0 -1
- package/test/sourcemaps/sourcemaps-rootpath.json +0 -1
- package/test/sourcemaps/sourcemaps-url.json +0 -1
- 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/test.less +0 -1
- package/tsconfig.build.json +0 -7
- package/tsconfig.json +0 -21
package/README.md
CHANGED
|
@@ -1,13 +1,78 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center"><img src="http://lesscss.org/public/img/less_logo.png" width="264" height="117" alt="Less.js logo"></p>
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://github.com/less/less.js/actions?query=branch%3Amaster"><img src="https://github.com/less/less.js/actions/workflows/ci.yml/badge.svg?branch=master" alt="Github Actions CI"/></a>
|
|
5
|
+
<a href="https://www.npmtrends.com/less"><img src="https://img.shields.io/npm/dm/less.svg?sanitize=true" alt="Downloads"></a>
|
|
6
|
+
<a href="https://www.npmjs.com/package/less"><img src="https://img.shields.io/npm/v/less.svg?sanitize=true" alt="npm version" /></a>
|
|
7
|
+
</p>
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
# Less.js
|
|
6
10
|
|
|
11
|
+
> The dynamic stylesheet language. [lesscss.org](http://lesscss.org)
|
|
7
12
|
|
|
8
|
-
|
|
13
|
+
Less extends CSS with variables, mixins, functions, nesting, and more — then compiles to standard CSS. Write cleaner stylesheets with less code.
|
|
14
|
+
|
|
15
|
+
```less
|
|
16
|
+
@primary: #4a90d9;
|
|
17
|
+
|
|
18
|
+
.button {
|
|
19
|
+
color: @primary;
|
|
20
|
+
&:hover {
|
|
21
|
+
color: darken(@primary, 10%);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Install
|
|
9
27
|
|
|
10
|
-
Add Less.js to your project:
|
|
11
28
|
```sh
|
|
12
29
|
npm install less
|
|
13
30
|
```
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
### Node.js
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
import less from 'less';
|
|
38
|
+
|
|
39
|
+
const output = await less.render('.class { width: (1 + 1) }');
|
|
40
|
+
console.log(output.css);
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Command Line
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
npx lessc styles.less styles.css
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Browser
|
|
50
|
+
|
|
51
|
+
```html
|
|
52
|
+
<link rel="stylesheet/less" type="text/css" href="styles.less" />
|
|
53
|
+
<script src="https://cdn.jsdelivr.net/npm/less"></script>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Why Less?
|
|
57
|
+
|
|
58
|
+
- **Variables** — define reusable values once
|
|
59
|
+
- **Mixins** — reuse groups of declarations across rulesets
|
|
60
|
+
- **Nesting** — mirror HTML structure in your stylesheets
|
|
61
|
+
- **Functions** — transform colors, manipulate strings, do math
|
|
62
|
+
- **Imports** — split stylesheets into manageable pieces
|
|
63
|
+
- **Extend** — reduce output size by combining selectors
|
|
64
|
+
|
|
65
|
+
## Documentation
|
|
66
|
+
|
|
67
|
+
Full documentation, usage guides, and configuration options at **[lesscss.org](http://lesscss.org)**.
|
|
68
|
+
|
|
69
|
+
## Contributing
|
|
70
|
+
|
|
71
|
+
Less.js is open source. [Report bugs](https://github.com/less/less.js/issues), submit pull requests, or help improve the [documentation](https://github.com/less/less-docs).
|
|
72
|
+
|
|
73
|
+
See [CONTRIBUTING.md](https://github.com/less/less.js/blob/master/CONTRIBUTING.md) for development setup.
|
|
74
|
+
|
|
75
|
+
## License
|
|
76
|
+
|
|
77
|
+
Copyright (c) 2009-2025 [Alexis Sellier](http://cloudhead.io) & The Core Less Team
|
|
78
|
+
Licensed under the [Apache License](https://github.com/less/less.js/blob/master/LICENSE).
|
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();
|
|
@@ -107,22 +107,22 @@ function render() {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
// Handle explicit sourceMapFullFilename (from --source-map=filename)
|
|
110
|
-
// Normalization of other options (sourceMapBasepath, sourceMapRootpath, etc.)
|
|
110
|
+
// Normalization of other options (sourceMapBasepath, sourceMapRootpath, etc.)
|
|
111
111
|
// is handled automatically in parse-tree.js
|
|
112
112
|
if (sourceMapOptions.sourceMapFullFilename && !sourceMapFileInline) {
|
|
113
113
|
var mapFilename = path.resolve(process.cwd(), sourceMapOptions.sourceMapFullFilename);
|
|
114
114
|
var mapDir = path.dirname(mapFilename);
|
|
115
|
-
|
|
115
|
+
|
|
116
116
|
if (output) {
|
|
117
117
|
var outputDir = path.dirname(output);
|
|
118
118
|
// Set sourceMapOutputFilename relative to map directory
|
|
119
119
|
sourceMapOptions.sourceMapOutputFilename = path.join(
|
|
120
|
-
path.relative(mapDir, outputDir),
|
|
120
|
+
path.relative(mapDir, outputDir),
|
|
121
121
|
path.basename(output)
|
|
122
122
|
);
|
|
123
123
|
// Set sourceMapFilename relative to output directory (for sourceMappingURL comment)
|
|
124
124
|
sourceMapOptions.sourceMapFilename = path.join(
|
|
125
|
-
path.relative(outputDir, mapDir),
|
|
125
|
+
path.relative(outputDir, mapDir),
|
|
126
126
|
path.basename(sourceMapOptions.sourceMapFullFilename)
|
|
127
127
|
);
|
|
128
128
|
} else {
|
|
@@ -150,6 +150,7 @@ function render() {
|
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
var mkdirp;
|
|
153
154
|
var ensureDirectory = function ensureDirectory(filepath) {
|
|
154
155
|
var dir = path.dirname(filepath);
|
|
155
156
|
var cmd;
|
|
@@ -188,7 +189,7 @@ function render() {
|
|
|
188
189
|
|
|
189
190
|
// To fix https://github.com/less/less.js/issues/3646
|
|
190
191
|
output = output.toString();
|
|
191
|
-
|
|
192
|
+
|
|
192
193
|
fs.writeFile(filename, output, 'utf8', function (err) {
|
|
193
194
|
if (err) {
|
|
194
195
|
var description = 'Error: ';
|
|
@@ -403,11 +404,15 @@ function processPluginQueue() {
|
|
|
403
404
|
case 'silent':
|
|
404
405
|
options.silent = silent = true;
|
|
405
406
|
break;
|
|
406
|
-
|
|
407
|
+
|
|
407
408
|
case 'quiet':
|
|
408
409
|
options.quiet = quiet = true;
|
|
409
410
|
break;
|
|
410
411
|
|
|
412
|
+
case 'quiet-deprecations':
|
|
413
|
+
options.quietDeprecations = true;
|
|
414
|
+
break;
|
|
415
|
+
|
|
411
416
|
case 'l':
|
|
412
417
|
case 'lint':
|
|
413
418
|
options.lint = true;
|
|
@@ -453,6 +458,7 @@ function processPluginQueue() {
|
|
|
453
458
|
|
|
454
459
|
case 'js':
|
|
455
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)');
|
|
456
462
|
break;
|
|
457
463
|
|
|
458
464
|
case 'no-js':
|
|
@@ -476,6 +482,7 @@ function processPluginQueue() {
|
|
|
476
482
|
case 'line-numbers':
|
|
477
483
|
if (checkArgFunc(arg, match[2])) {
|
|
478
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)');
|
|
479
486
|
}
|
|
480
487
|
|
|
481
488
|
break;
|
|
@@ -532,13 +539,13 @@ function processPluginQueue() {
|
|
|
532
539
|
}
|
|
533
540
|
|
|
534
541
|
break;
|
|
535
|
-
|
|
542
|
+
|
|
536
543
|
case 'ie-compat':
|
|
537
|
-
|
|
544
|
+
pendingDeprecations.push('Warning: The --ie-compat option is deprecated, as it has no effect on compilation.');
|
|
538
545
|
break;
|
|
539
546
|
|
|
540
547
|
case 'relative-urls':
|
|
541
|
-
|
|
548
|
+
pendingDeprecations.push('Warning: The --relative-urls option has been deprecated. Use --rewrite-urls=all.');
|
|
542
549
|
options.rewriteUrls = Constants.RewriteUrls.ALL;
|
|
543
550
|
break;
|
|
544
551
|
|
|
@@ -566,7 +573,7 @@ function processPluginQueue() {
|
|
|
566
573
|
|
|
567
574
|
case 'sm':
|
|
568
575
|
case 'strict-math':
|
|
569
|
-
|
|
576
|
+
pendingDeprecations.push('Warning: The --strict-math option has been deprecated. Use --math=strict.');
|
|
570
577
|
|
|
571
578
|
if (checkArgFunc(arg, match[2])) {
|
|
572
579
|
if (checkBooleanArg(match[2])) {
|
|
@@ -581,14 +588,14 @@ function processPluginQueue() {
|
|
|
581
588
|
let m = match[2];
|
|
582
589
|
if (checkArgFunc(arg, m)) {
|
|
583
590
|
if (m === 'always') {
|
|
584
|
-
|
|
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)');
|
|
585
592
|
options.math = Constants.Math.ALWAYS;
|
|
586
593
|
} else if (m === 'parens-division') {
|
|
587
594
|
options.math = Constants.Math.PARENS_DIVISION;
|
|
588
595
|
} else if (m === 'parens' || m === 'strict') {
|
|
589
596
|
options.math = Constants.Math.PARENS;
|
|
590
597
|
} else if (m === 'strict-legacy') {
|
|
591
|
-
|
|
598
|
+
pendingDeprecations.push('Warning: --math=strict-legacy has been removed. Defaulting to --math=strict.');
|
|
592
599
|
options.math = Constants.Math.PARENS;
|
|
593
600
|
}
|
|
594
601
|
}
|
|
@@ -645,7 +652,7 @@ function processPluginQueue() {
|
|
|
645
652
|
case 'disable-plugin-rule':
|
|
646
653
|
options.disablePluginRule = true;
|
|
647
654
|
break;
|
|
648
|
-
|
|
655
|
+
|
|
649
656
|
default:
|
|
650
657
|
queuePlugins.push({
|
|
651
658
|
name: arg,
|
|
@@ -656,9 +663,16 @@ function processPluginQueue() {
|
|
|
656
663
|
}
|
|
657
664
|
});
|
|
658
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
|
+
|
|
659
673
|
if (queuePlugins.length > 0) {
|
|
660
674
|
processPluginQueue();
|
|
661
675
|
} else {
|
|
662
676
|
render();
|
|
663
677
|
}
|
|
664
|
-
})();
|
|
678
|
+
})();
|