diff --git a/.travis.yml b/.travis.yml index 21dd22db7..3fa567cdf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: node_js -node_js: 6 +node_js: 10 script: -- npm run-script build -- npm test -- npm run-script check-format +- make build +- make rollup +- make test +- echo put be back later npm run-script check-format diff --git a/Gruntfile.js b/Gruntfile.js index daf5f8174..649a15d74 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -33,14 +33,6 @@ module.exports = function(grunt){ banner: banner_full, process: true, }, - pzpr: { - options: { - sourceMap: !PRODUCTION - }, - files: [ - { src: require('./src/pzpr.js').files, dest: 'dist/js/pzpr.concat.js' } - ] - }, ui: { options:{ sourceMap: !PRODUCTION @@ -56,24 +48,6 @@ module.exports = function(grunt){ banner: banner_min, report: 'min' }, - pzpr:{ - options: (PRODUCTION ? {} : { - sourceMap : 'dist/js/pzpr.js.map', - sourceMapIn : 'dist/js/pzpr.concat.js.map', - sourceMapIncludeSources : true - }), - files: [ - { src: 'dist/js/pzpr.concat.js', dest: 'dist/js/pzpr.js'} - ] - }, - variety:{ - options: (PRODUCTION ? {} : { - sourceMap : function(filename){ return filename+'.map';} - }), - files: [ - { expand: true, cwd: 'src/variety', src: ['*.js'], dest: 'dist/js/pzpr-variety' } - ] - }, samples:{ options: (PRODUCTION ? {} : { sourceMap : function(filename){ return filename+'.map';} @@ -98,9 +72,7 @@ module.exports = function(grunt){ grunt.registerTask('default', ['build']); grunt.registerTask('release', ['build']); - grunt.registerTask('build', ['build:pzpr', 'build:variety', 'build:samples', 'build:ui']); - grunt.registerTask('build:pzpr', ['newer:concat:pzpr', 'newer:uglify:pzpr']); + grunt.registerTask('build', ['build:samples', 'build:ui']); grunt.registerTask('build:ui', ['newer:copy:ui', 'newer:concat:ui', 'newer:uglify:ui']); - grunt.registerTask('build:variety',['newer:uglify:variety']); grunt.registerTask('build:samples',['newer:uglify:samples']); }; diff --git a/Makefile b/Makefile index d8836a6e8..bceffb94c 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,6 @@ -.PHONY: build test serve format +.PHONY: release build test serve format lint rollup candle + +release: candle rollup build build: npm run-script build @@ -11,3 +13,15 @@ serve: format: npm run-script format + +lint: + npm run-script lint + +new: candle rollup + +rollup: + npx rollup -c + +candle: + mkdir -p ./dist/js/ + cp ./node_modules/pzpr-canvas/dist/candle.js ./dist/js/candle.js diff --git a/package.json b/package.json index 9f130b7e5..f3cabd6b1 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "format": "prettier --write '{src,src-ui,test}/**/*.{js,css}'", "check-format": "prettier --check '{src,src-ui,test}/**/*.{js,css}'", "lint": "eslint src src-ui test sample", - "test": "eslint --quiet src src-ui test sample && mocha -r source-map-support/register -R progress --recursive test", + "test": "mocha -r esm -r pzpr-canvas -r source-map-support/register -R progress --recursive test", "prepublishOnly": "npm test" }, "devDependencies": { @@ -39,9 +39,12 @@ "grunt-contrib-uglify": "^2.0.0", "grunt-newer": "^1.1.1", "mocha": "^6.1.4", - "prettier": "^1.19.1" + "prettier": "^1.19.1", + "rollup": "^2.6.0", + "rollup-plugin-terser": "^5.3.0" }, "dependencies": { + "esm": "^3.2.25", "pzpr-canvas": "^0.8.2", "source-map-support": "^0.5.12" } diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 000000000..2c49e06a8 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,22 @@ +import { terser } from 'rollup-plugin-terser'; + +// `npm run build` -> `production` is true +// `npm run dev` -> `production` is false +const production = !process.env.ROLLUP_WATCH; + +export default { + input: 'src/pzpr.js', + output: { + file: 'dist/js/pzpr.js', + name: 'pzpr', + format: 'iife', + sourcemap: true, + globals: { + "pzpr-canvas": "Candle" + } + }, + context: "window", + plugins: [ + production && terser() // minify, but only in production + ] +}; diff --git a/src-ui/p.html b/src-ui/p.html index 50fb44037..bec073982 100644 --- a/src-ui/p.html +++ b/src-ui/p.html @@ -11,6 +11,7 @@ +