diff --git a/.npmignore b/.npmignore index 9a66c1a0d..a3b5452aa 100644 --- a/.npmignore +++ b/.npmignore @@ -5,6 +5,8 @@ build/ .grunt/ benchmark/ test/ +test/less-bom/ +lib/ # re-include test files as they can be useful for plugins that do testing !test/*.js tmp/ diff --git a/.travis.yml b/.travis.yml index 0cd3fa893..7fd765c54 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ node_js: - "12" - "10" - "8" - - "6" before_install: # from https://github.com/travis-ci/travis-ci/issues/3225#issuecomment-177592725 # and also from https://github.com/travis-ci/travis-ci/issues/3225#issuecomment-200965782 diff --git a/Gruntfile.js b/Gruntfile.js index 11bb961b0..ae2405104 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -178,6 +178,17 @@ module.exports = function(grunt) { // Make the SauceLabs jobs ["all"].concat(browserTests).map(makeJob); + var semver = require('semver'); + var path = require('path'); + + // Handle async / await in Rollup build for tests + // Remove this when Node 6 is no longer supported for the build/test process + const nodeVersion = semver.major(process.versions.node); + let scriptRuntime = 'node'; + if (nodeVersion < 8) { + scriptRuntime = path.resolve(path.join('node_modules', '.bin', 'babel-node')) + ' --presets=@babel/env'; + } + // Project configuration. grunt.initConfig({ shell: { @@ -190,14 +201,14 @@ module.exports = function(grunt) { }, build: { command: [ - "node build/rollup.js --dist" + scriptRuntime + " build/rollup.js --dist" ].join(" && ") }, testbuild: { command: [ - "node build/rollup.js --lessc --out=./tmp/lessc", - "node build/rollup.js --node --out=./tmp/less.cjs.js", - "node build/rollup.js --browser --out=./test/browser/less.min.js" + scriptRuntime + " build/rollup.js --lessc --out=./tmp/lessc", + scriptRuntime + " build/rollup.js --node --out=./tmp/less.cjs.js", + scriptRuntime + " build/rollup.js --browser --out=./test/browser/less.min.js" ].join(" && ") }, test: { diff --git a/bin/lessc b/bin/lessc index ed1ee781c..0ffe6dbca 100644 --- a/bin/lessc +++ b/bin/lessc @@ -1,4 +1,5 @@ #!/usr/bin/env node +// AUTO-GENERATED BY ROLLUP 'use strict'; diff --git a/build/rollup.js b/build/rollup.js index 1a3956dbe..72d269cee 100644 --- a/build/rollup.js +++ b/build/rollup.js @@ -127,7 +127,7 @@ async function buildLessC() { await bundle.write({ file: path.join(rootPath, file), - banner: '#!/usr/bin/env node\n', + banner: '#!/usr/bin/env node\n// AUTO-GENERATED BY ROLLUP\n', format: 'cjs', interop: false }); @@ -144,9 +144,5 @@ async function build() { await buildNode(); } } -try { - build(); -} -catch (e) { - throw e; -} \ No newline at end of file + +build(); \ No newline at end of file diff --git a/dist/less.js b/dist/less.js index 1c3b79ea5..458e552f0 100644 --- a/dist/less.js +++ b/dist/less.js @@ -1,5 +1,5 @@ /** - * Less - Leaner CSS v3.10.0-beta + * Less - Leaner CSS v3.10.0-beta.2 * http://lesscss.org * * Copyright (c) 2009-2019, Alexis Sellier diff --git a/dist/less.min.js b/dist/less.min.js index 7d93b3fc4..911f66d6a 100644 --- a/dist/less.min.js +++ b/dist/less.min.js @@ -1,5 +1,5 @@ /** - * Less - Leaner CSS v3.10.0-beta + * Less - Leaner CSS v3.10.0-beta.2 * http://lesscss.org * * Copyright (c) 2009-2019, Alexis Sellier diff --git a/package.json b/package.json index c50df0bb6..5fc205ff6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "less", - "version": "3.10.0-beta", + "version": "3.10.0-beta.2", "description": "Leaner CSS", "homepage": "http://lesscss.org", "author": { @@ -51,6 +51,7 @@ "devDependencies": { "@babel/cli": "^7.5.5", "@babel/core": "^7.5.5", + "@babel/node": "^7.5.5", "@babel/preset-env": "^7.5.5", "@typescript-eslint/eslint-plugin": "^1.13.0", "@typescript-eslint/parser": "^1.13.0", @@ -81,6 +82,7 @@ "rollup-plugin-commonjs": "^10.0.1", "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-terser": "^5.1.1", + "semver": "^6.3.0", "time-grunt": "^1.3.0", "typescript": "^3.5.3", "uikit": "2.27.4" diff --git a/test/less-test.js b/test/less-test.js index dbdda3dd6..841579d55 100644 --- a/test/less-test.js +++ b/test/less-test.js @@ -7,7 +7,16 @@ module.exports = function() { doBomTest = false, clone = require('clone'); - var less = require('../tmp/less.cjs.js'); + var less; + + // Dist fallback for NPM-installed Less (for plugins that do testing) + try { + less = require('../tmp/less.cjs.js'); + } + catch (e) { + less = require('../dist/less.cjs.js'); + } + var stylize = require('../lib/less-node/lessc-helper').stylize; var globals = Object.keys(global); diff --git a/test/modify-vars.js b/test/modify-vars.js index b6962b202..a5763d2eb 100644 --- a/test/modify-vars.js +++ b/test/modify-vars.js @@ -1,5 +1,14 @@ -var less = require('../tmp/less.cjs.js'), - fs = require('fs'); +var less; + +// Dist fallback for NPM-installed Less (for plugins that do testing) +try { + less = require('../tmp/less.cjs.js'); +} +catch (e) { + less = require('../dist/less.cjs.js'); +} + +var fs = require('fs'); var input = fs.readFileSync('./test/less/modifyVars/extended.less', 'utf8'); var expectedCss = fs.readFileSync('./test/css/modifyVars/extended.css', 'utf8');