From 6b884dcd7663085bc01e4308652f2d27ae07eae2 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Mon, 30 Oct 2017 01:28:52 +0200 Subject: Clean up package.json scripts. (#24583) * rename build/htmllint.js to build/vnu-jar.js * remove the unused `bash` script * split the `docs-lint` scripts * fix watch-js script to run only the parent `js-compile` script --- build/htmllint.js | 46 ---------------------------------------------- build/vnu-jar.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 9 +++++---- 3 files changed, 51 insertions(+), 50 deletions(-) delete mode 100644 build/htmllint.js create mode 100644 build/vnu-jar.js diff --git a/build/htmllint.js b/build/htmllint.js deleted file mode 100644 index f69d80141..000000000 --- a/build/htmllint.js +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env node - -/*! - * Script to run vnu-jar if Java is available. - * Copyright 2017 The Bootstrap Authors - * Copyright 2017 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -'use strict' - -const childProcess = require('child_process') -const vnu = require('vnu-jar') - -childProcess.exec('java -version', function (error) { - if (error) { - console.error('Skipping HTML lint test; Java is missing.') - return - } - - const ignores = [ - 'Attribute “autocomplete” is only allowed when the input type is “color”, “date”, “datetime-local”, “email”, “hidden”, “month”, “number”, “password”, “range”, “search”, “tel”, “text”, “time”, “url”, or “week”.', - 'Attribute “autocomplete” not allowed on element “button” at this point.', - 'Attribute “title” not allowed on element “circle” at this point.', - 'Bad value “tablist” for attribute “role” on element “nav”.', - 'Element “img” is missing required attribute “src”.', - 'Element “legend” not allowed as child of element “div” in this context.*' - ].join('|') - - const args = [ - '-jar', - vnu, - '--asciiquotes', - '--errors-only', - '--skip-non-html', - `--filterpattern "${ignores}"`, - '_gh_pages/', - 'js/tests/' - ] - - return childProcess.spawn('java', args, { - shell: true, - stdio: 'inherit' - }) - .on('exit', process.exit) -}) diff --git a/build/vnu-jar.js b/build/vnu-jar.js new file mode 100644 index 000000000..f69d80141 --- /dev/null +++ b/build/vnu-jar.js @@ -0,0 +1,46 @@ +#!/usr/bin/env node + +/*! + * Script to run vnu-jar if Java is available. + * Copyright 2017 The Bootstrap Authors + * Copyright 2017 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +'use strict' + +const childProcess = require('child_process') +const vnu = require('vnu-jar') + +childProcess.exec('java -version', function (error) { + if (error) { + console.error('Skipping HTML lint test; Java is missing.') + return + } + + const ignores = [ + 'Attribute “autocomplete” is only allowed when the input type is “color”, “date”, “datetime-local”, “email”, “hidden”, “month”, “number”, “password”, “range”, “search”, “tel”, “text”, “time”, “url”, or “week”.', + 'Attribute “autocomplete” not allowed on element “button” at this point.', + 'Attribute “title” not allowed on element “circle” at this point.', + 'Bad value “tablist” for attribute “role” on element “nav”.', + 'Element “img” is missing required attribute “src”.', + 'Element “legend” not allowed as child of element “div” in this context.*' + ].join('|') + + const args = [ + '-jar', + vnu, + '--asciiquotes', + '--errors-only', + '--skip-non-html', + `--filterpattern "${ignores}"`, + '_gh_pages/', + 'js/tests/' + ] + + return childProcess.spawn('java', args, { + shell: true, + stdio: 'inherit' + }) + .on('exit', process.exit) +}) diff --git a/package.json b/package.json index 3d04e52fc..4f0efda65 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,6 @@ "Twitter, Inc." ], "scripts": { - "bash": "bash", "bundlesize": "bundlesize", "css": "npm-run-all --parallel css-lint* css-compile* --sequential css-prefix* css-minify*", "css-main": "npm-run-all --parallel css-lint css-compile --sequential css-prefix css-minify", @@ -49,7 +48,9 @@ "docs-compile": "bundle exec jekyll build", "postdocs-compile": "npm run docs-workbox-precache", "docs-github": "shx echo \"github: true\" > twbsconfig.yml && npm run docs-compile -- --config _config.yml,twbsconfig.yml && shx rm ./twbsconfig.yml", - "docs-lint": "htmllint --rc build/.htmllintrc \"_gh_pages/**/*.html\" \"js/tests/**/*.html\" && node build/htmllint.js", + "docs-lint": "npm-run-all docs-lint-*", + "docs-lint-htmllint": "htmllint --rc build/.htmllintrc \"_gh_pages/**/*.html\" \"js/tests/**/*.html\"", + "docs-lint-vnu-jar": "node build/vnu-jar.js", "docs-serve": "bundle exec jekyll serve", "docs-upload-preview": "build/upload-preview.sh", "docs-workbox-precache": "node build/workbox.js", @@ -57,10 +58,10 @@ "release-version": "node build/change-version.js", "release-zip": "cd dist/ && zip -r9 bootstrap-$npm_package_version-dist.zip * && shx mv bootstrap-$npm_package_version-dist.zip ..", "dist": "npm-run-all --parallel css js", - "test": "npm-run-all dist --parallel js-test --sequential docs-compile docs-lint bundlesize", + "test": "npm-run-all dist js-test docs-compile docs-lint bundlesize", "watch": "npm-run-all --parallel watch-css watch-js", "watch-css": "nodemon --ignore js/ --ignore dist/ -e scss -x \"npm run css\"", - "watch-js": "nodemon --ignore scss/ --ignore js/dist/ --ignore dist/ -e js -x \"npm-run-all --parallel js-compile-*\"" + "watch-js": "nodemon --ignore scss/ --ignore js/dist/ --ignore dist/ -e js -x \"npm run js-compile\"" }, "style": "dist/css/bootstrap.css", "sass": "scss/bootstrap.scss", -- cgit v1.2.3