mirror of
https://github.com/Smaug123/KaTeX
synced 2025-10-04 18:58:39 +00:00
Remove Makefile and migrate to NPM scripts (#1135)
* Remove Makefile and migrate to NPM scripts * Update documentation/.arclint * Check node version in prestart * Group test npm scripts into `test:`
This commit is contained in:
committed by
Kevin Barabash
parent
73d80f595c
commit
383a68b935
2
.arclint
2
.arclint
@@ -2,7 +2,7 @@
|
||||
"linters": {
|
||||
"katex-linter": {
|
||||
"type": "script-and-regex",
|
||||
"script-and-regex.script": "make lint || true",
|
||||
"script-and-regex.script": "npm run test:lint || true",
|
||||
"script-and-regex.regex": "/^(?P<file>\\S+): line (?P<line>\\d+), col \\d+, (?P<message>.*)$/m"
|
||||
}
|
||||
}
|
||||
|
@@ -74,7 +74,7 @@ by running `npm install webpack-dev-server@2.7.1`.
|
||||
|
||||
The JavaScript parser and some of the HTML and MathML tree
|
||||
builders are tested with Jest. These tests can be run using node with
|
||||
`npm run jest`. If you need to debug the tests see
|
||||
`npm run test:jest`. If you need to debug the tests see
|
||||
[https://facebook.github.io/jest/docs/troubleshooting.html](https://facebook.github.io/jest/docs/troubleshooting.html)
|
||||
|
||||
The interactive editor can also be used for debugging tests in the browser by
|
||||
|
95
Makefile
95
Makefile
@@ -1,95 +0,0 @@
|
||||
.PHONY: build dist lint setup webpack serve clean metrics test coverage zip flow
|
||||
build: test build/katex zip compress
|
||||
|
||||
ifeq ($(KATEX_DIST),skip)
|
||||
|
||||
dist:
|
||||
|
||||
else
|
||||
|
||||
dist: build
|
||||
rm -rf dist/
|
||||
cp -R build/katex/ dist/
|
||||
|
||||
endif
|
||||
|
||||
NODE := node # pass NODE=nodejs on Debian without package nodejs-legacy
|
||||
NPM := npm
|
||||
NODECHK := $(shell $(NODE) ./check-node-version.js)
|
||||
ifneq ($(NODECHK),OK)
|
||||
$(error "Node not found or wrong version")
|
||||
endif
|
||||
|
||||
# The prepublish script in package.json will override the following variable,
|
||||
# setting it to the empty string and thereby avoiding an infinite recursion
|
||||
NIS = .npm-install.stamp
|
||||
|
||||
$(NIS) setup: package.json
|
||||
KATEX_DIST=skip npm install # dependencies only, don't build
|
||||
@touch $(NIS)
|
||||
|
||||
lint: $(NIS)
|
||||
$(NPM) run lint
|
||||
|
||||
webpack: katex.js $(wildcard src/*.js) src/katex.less submodules/katex-fonts/fonts.less $(NIS)
|
||||
$(NPM) run build
|
||||
|
||||
.PHONY: build/fonts build/contrib
|
||||
build/katex.js build/katex.min.js build/katex.css build/katex.min.css build/katex.css build/fonts build/contrib: webpack
|
||||
|
||||
test/screenshotter/unicode-fonts:
|
||||
git clone https://github.com/Khan/KaTeX-test-fonts test/screenshotter/unicode-fonts
|
||||
cd test/screenshotter/unicode-fonts && \
|
||||
git checkout 99fa66a2da643218754c8236b9f9151cac71ba7c && \
|
||||
cd ../../../
|
||||
|
||||
.PHONY: build/katex
|
||||
build/katex: build/katex.js build/katex.min.js build/katex.css build/katex.min.css build/fonts README.md build/contrib
|
||||
mkdir -p build/katex
|
||||
rm -rf build/katex/*
|
||||
cp -r $^ build/katex
|
||||
|
||||
build/katex.tar.gz: build/katex
|
||||
cd build && tar czf katex.tar.gz katex/
|
||||
|
||||
build/katex.zip: build/katex
|
||||
rm -f $@
|
||||
cd build && zip -rq katex.zip katex/
|
||||
|
||||
zip: build/katex.tar.gz build/katex.zip
|
||||
|
||||
compress: build/katex.min.js build/katex.min.css
|
||||
@JSSIZE=`gzip -c build/katex.min.js | wc -c`; \
|
||||
CSSSIZE=`gzip -c build/katex.min.css | wc -c`; \
|
||||
TOTAL=`echo $${JSSIZE}+$${CSSSIZE} | bc`; \
|
||||
printf "Minified, gzipped js: %6d\n" "$${JSSIZE}"; \
|
||||
printf "Minified, gzipped css: %6d\n" "$${CSSSIZE}"; \
|
||||
printf "Total: %6d\n" "$${TOTAL}"
|
||||
|
||||
serve: $(NIS)
|
||||
$(NPM) start
|
||||
|
||||
flow: $(NIS)
|
||||
$(NPM) run flow
|
||||
|
||||
test: $(NIS)
|
||||
$(NPM) test
|
||||
|
||||
coverage: $(NIS)
|
||||
$(NPM) run coverage
|
||||
|
||||
PERL=perl
|
||||
PYTHON=$(shell python2 --version >/dev/null 2>&1 && echo python2 || echo python)
|
||||
|
||||
metrics:
|
||||
cd metrics && $(PERL) ./mapping.pl | $(PYTHON) ./extract_tfms.py | $(PYTHON) ./extract_ttfs.py | $(PYTHON) ./format_json.py --width > ../src/fontMetricsData.js
|
||||
|
||||
unicode:
|
||||
cd src && $(NODE) unicodeMake.js >unicodeSymbols.js
|
||||
src/unicodeSymbols.js: unicode
|
||||
|
||||
clean:
|
||||
rm -rf build/* $(NIS)
|
||||
|
||||
screenshots: test/screenshotter/unicode-fonts $(NIS)
|
||||
dockers/Screenshotter/screenshotter.sh
|
26
package.json
26
package.json
@@ -39,6 +39,7 @@
|
||||
"jspngopt": "^0.2.0",
|
||||
"less": "~2.7.1",
|
||||
"less-loader": "^4.0.5",
|
||||
"mkdirp": "^0.5.1",
|
||||
"nomnom": "^1.8.1",
|
||||
"object-assign": "^4.1.0",
|
||||
"pako": "1.0.4",
|
||||
@@ -55,23 +56,28 @@
|
||||
},
|
||||
"bin": "cli.js",
|
||||
"scripts": {
|
||||
"lint": "eslint katex.js katex.webpack.js cli.js webpack.common.js webpack.config.js webpack.dev.js src static test contrib dockers && stylelint src/katex.less",
|
||||
"flow": "flow",
|
||||
"jest": "jest",
|
||||
"test": "npm run prestart && npm run test:lint && npm run test:flow && npm run test:jest",
|
||||
"test:lint": "eslint katex.js katex.webpack.js cli.js webpack.common.js webpack.config.js webpack.dev.js src static test contrib dockers && stylelint src/katex.less",
|
||||
"test:flow": "flow",
|
||||
"test:jest": "jest",
|
||||
"jest-update": "jest --updateSnapshot",
|
||||
"coverage": "jest --coverage",
|
||||
"clean": "rm -rf build/* node_modules/",
|
||||
"clean-install": "npm run clean && npm i",
|
||||
"test": "check-dependencies && npm run lint && npm run flow && npm run jest",
|
||||
"verify-screenshots": "check-dependencies && dockers/Screenshotter/screenshotter.sh --verify",
|
||||
"start": "check-dependencies && webpack-dev-server --hot --config webpack.dev.js",
|
||||
"build": "check-dependencies && rimraf build/* && webpack",
|
||||
"screenshots": "npm run prestart && dockers/Screenshotter/screenshotter.sh",
|
||||
"verify-screenshots": "npm run screenshots -- --verify",
|
||||
"prestart": "node check-node-version.js && check-dependencies && cd src && node unicodeMake.js >unicodeSymbols.js",
|
||||
"start": "webpack-dev-server --hot --config webpack.dev.js",
|
||||
"build": "npm run prestart && rimraf build/* && webpack",
|
||||
"dist": "npm test && npm run build && npm run dist:copy && npm run dist:zip && npm run dist:dist",
|
||||
"dist:copy": "cd build && mkdirp katex && cp -r katex.js katex.min.js katex.css katex.min.css contrib fonts ../README.md katex",
|
||||
"dist:zip": "cd build && tar czf katex.tar.gz katex/ && zip -rq katex.zip katex/",
|
||||
"dist:dist": "rimraf dist/ && cp -r build/katex/ dist/",
|
||||
"watch": "npm run build -- --watch",
|
||||
"perf-test": "check-dependencies && NODE_ENV=test node test/perf-test.js",
|
||||
"prepublishOnly": "make NIS= dist"
|
||||
"perf-test": "npm run prestart && NODE_ENV=test node test/perf-test.js"
|
||||
},
|
||||
"pre-commit": [
|
||||
"lint"
|
||||
"test:lint"
|
||||
],
|
||||
"dependencies": {
|
||||
"match-at": "^0.1.1"
|
||||
|
@@ -104,7 +104,7 @@ git checkout --detach
|
||||
|
||||
# Build generated files and add them to the repository (for bower)
|
||||
git clean -fdx build dist
|
||||
make setup dist
|
||||
npm run dist
|
||||
sed -i.bak -E '/^\/dist\/$/d' .gitignore
|
||||
rm -f .gitignore.bak
|
||||
git add .gitignore dist/
|
||||
|
@@ -4,10 +4,6 @@
|
||||
// whose purpose is to generate unicodeSymbols.js in this directory.
|
||||
// In this way, only this tool, and not the distribution/browser,
|
||||
// needs String's normalize function.
|
||||
//
|
||||
// This tool should be run (via `node unicodeMake.js` or `make unicode`)
|
||||
// whenever KaTeX adds support for new accents, and whenever
|
||||
// the Unicode spec adds new symbols that should be supported.
|
||||
|
||||
const accents = require('./unicodeAccents');
|
||||
|
||||
|
Reference in New Issue
Block a user