From 8994c7f8785b5f1106e938ab115258ce1ef1e7d4 Mon Sep 17 00:00:00 2001 From: telamonian Date: Sun, 7 Jun 2020 23:50:01 -0400 Subject: [PATCH 1/2] adds a live-reloading dev server to the rollup watch build --- .travis.yml | 9 +- examples/index.html | 52 ++++++++++ jest-puppeteer.config.js | 8 +- package.json | 12 +-- rollup.config.js | 6 +- rollup.dev.config.js | 35 +++++++ yarn.lock | 201 +++++++++++++++++---------------------- 7 files changed, 196 insertions(+), 127 deletions(-) create mode 100644 examples/index.html create mode 100644 rollup.dev.config.js diff --git a/.travis.yml b/.travis.yml index 9941c4ae..bf3e21fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,13 @@ install: - yarn script: + # lint first, no point running tests just to fail on lint + - yarn lint + + # test production build - yarn build + - yarn clean + + # dev build will run as part of `yarn test` + - yarn build:less - yarn test - - yarn lint \ No newline at end of file diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 00000000..ed6f1719 --- /dev/null +++ b/examples/index.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + +
+ 2d_array.html + benchmark.html + canvas_data_model.html + file_browser.html + minesweeper.html + perspective_headers.html + perspective.html + react.html + spreadsheet.html + two_billion_rows.html + virtual_indices.html + web_worker.html +
+ + + + diff --git a/jest-puppeteer.config.js b/jest-puppeteer.config.js index 4f1408b0..24a7b7c9 100644 --- a/jest-puppeteer.config.js +++ b/jest-puppeteer.config.js @@ -1,6 +1,12 @@ module.exports = { server: { - command: "yarn start -p 8081", + command: "yarn start --port 8081", + launchTimeout: 30000, port: 8081, + waitOnScheme: { + resources: [ + "dist/umd/regular-table.js", + ], + }, }, }; diff --git a/package.json b/package.json index d4d3596f..d78171af 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "jsdelivr": "dist/umd/regular-table.js", "files": [ "dist/**/*", - "less", + "src/less/*.less", "babel.config.js" ], "scripts": { @@ -26,12 +26,11 @@ "build": "npm-run-all -p build:*", "clean": "rimraf dist", "docs": "jsdoc2md src/js/index.js --separators --heading-depth 1 > api.md", - "lint": "eslint src examples/*.html", "fix": "yarn lint --fix", + "lint": "eslint src examples/*.html", + "start": "rollup -c rollup.dev.config.js", "test": "jest --noStackTrace", - "start": "http-server", - "watch:babel": "babel src/js --watch --out-dir dist/esm", - "watch:webpack": "rollup -c rollup.config.js --watch", + "watch:rollup": "rollup -c rollup.dev.config.js --watch", "watch": "npm-run-all -p watch:*" }, "publishConfig": { @@ -55,7 +54,6 @@ "eslint": "^7.1.0", "eslint-plugin-html": "^6.0.2", "eslint-plugin-prettier": "^3.1.3", - "http-server": "^0.12.3", "jest": "^26.0.1", "jest-puppeteer": "^4.4.0", "jsdoc-to-markdown": "^6.0.1", @@ -67,6 +65,8 @@ "react-dom": "15", "rollup": "^2.13.1", "rollup-plugin-filesize": "^9.0.0", + "rollup-plugin-livereload": "^1.3.0", + "rollup-plugin-serve": "^1.0.1", "rollup-plugin-sourcemaps": "^0.6.2", "rollup-plugin-terser": "^6.1.0", "source-map-explorer": "^2.4.2", diff --git a/rollup.config.js b/rollup.config.js index 78c3ad5e..b472e3d0 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,7 +1,7 @@ -import {terser} from "rollup-plugin-terser"; +import babel from "@rollup/plugin-babel"; import filesize from "rollup-plugin-filesize"; import sourcemaps from "rollup-plugin-sourcemaps"; -import babel from "@rollup/plugin-babel"; +import {terser} from "rollup-plugin-terser"; export default { input: "src/js/index.js", @@ -10,8 +10,8 @@ export default { exclude: "node_modules/**", babelHelpers: "bundled", }), - sourcemaps(), filesize(), + sourcemaps(), terser(), ], watch: { diff --git a/rollup.dev.config.js b/rollup.dev.config.js new file mode 100644 index 00000000..720105b1 --- /dev/null +++ b/rollup.dev.config.js @@ -0,0 +1,35 @@ +import babel from "@rollup/plugin-babel"; +import filesize from "rollup-plugin-filesize"; +import livereload from 'rollup-plugin-livereload' +import serve from 'rollup-plugin-serve' +import sourcemaps from "rollup-plugin-sourcemaps"; + +export default commandLineArgs => { + const port = +commandLineArgs.port || 8080; + // ref: https://github.com/rollup/rollup/issues/2694#issuecomment-463915954 + delete commandLineArgs.port; + + return { + input: "src/js/index.js", + plugins: [ + babel({ + exclude: "node_modules/**", + babelHelpers: "bundled", + }), + filesize(), + livereload('dist'), + serve({ + contentBase: [".", "examples"], + port + }), + sourcemaps(), + ], + watch: { + clearScreen: false, + }, + output: { + sourcemap: true, + file: "dist/umd/regular-table.js", + }, + }; +}; diff --git a/yarn.lock b/yarn.lock index 87f3abd9..405d77cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1418,7 +1418,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3: +anymatch@^3.0.3, anymatch@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== @@ -1527,7 +1527,7 @@ async@0.9.x: resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= -async@^2.5.0, async@^2.6.2: +async@^2.5.0: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -1737,11 +1737,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -basic-auth@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" - integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -1754,6 +1749,11 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + bl@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" @@ -1806,7 +1806,7 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -2002,6 +2002,21 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +chokidar@^3.3.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" + integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -2256,11 +2271,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -corser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" - integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= - create-react-class@^15.6.0: version "15.6.3" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" @@ -2350,13 +2360,6 @@ debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.1: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -2533,16 +2536,6 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -ecstatic@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48" - integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog== - dependencies: - he "^1.1.1" - mime "^1.6.0" - minimist "^1.1.0" - url-join "^2.0.5" - ejs@^3.0.2: version "3.1.3" resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.3.tgz#514d967a8894084d18d3d47bd169a1c0560f093d" @@ -2795,11 +2788,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" @@ -3102,13 +3090,6 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -follow-redirects@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" - integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA== - dependencies: - debug "^3.0.0" - for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -3251,7 +3232,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^5.0.0: +glob-parent@^5.0.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -3413,11 +3394,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -he@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - homedir-polyfill@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -3473,31 +3449,6 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy@^1.18.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-server@^0.12.3: - version "0.12.3" - resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37" - integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA== - dependencies: - basic-auth "^1.0.3" - colors "^1.4.0" - corser "^2.0.1" - ecstatic "^3.3.2" - http-proxy "^1.18.0" - minimist "^1.2.5" - opener "^1.5.1" - portfinder "^1.0.25" - secure-compare "3.0.1" - union "~0.5.0" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -3668,6 +3619,13 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -3766,7 +3724,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -4641,6 +4599,21 @@ linkify-it@^2.0.0: dependencies: uc.micro "^1.0.1" +livereload-js@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.2.2.tgz#fffb018fb8a8b06d366ca1b03af6048b8732d20f" + integrity sha512-xhScbNeC687ZINjEf/bD+BMiPx4s4q0mehcLb3zCc8+mykOtmaBR4vqzyIV9rIGdG9JjHaT0LiFdscvivCjX1Q== + +livereload@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/livereload/-/livereload-0.9.1.tgz#65125dabdf2db4fd3f1169e953fe56e3bcc6f477" + integrity sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw== + dependencies: + chokidar "^3.3.0" + livereload-js "^3.1.0" + opts ">= 1.2.0" + ws "^6.2.1" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -4855,7 +4828,12 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "1.44.0" -mime@^1.4.1, mime@^1.6.0: +mime@>=2.0.3: + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + +mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -4877,7 +4855,7 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -5127,7 +5105,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -5327,7 +5305,7 @@ open@^7.0.3: is-docker "^2.0.0" is-wsl "^2.1.1" -opener@^1.5.1: +opener@1: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== @@ -5356,6 +5334,11 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +"opts@>= 1.2.0": + version "1.2.7" + resolved "https://registry.yarnpkg.com/opts/-/opts-1.2.7.tgz#4de4721d592c96901dae623a438c988e9ea7779f" + integrity sha512-hwZhzGGG/GQ7igxAVFOEun2N4fWul31qE9nfBdCnZGQCB5+L7tN9xZ+94B4aUpLOJx/of3zZs5XsuubayQYQjA== + os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -5546,7 +5529,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.2: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -5587,15 +5570,6 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -portfinder@^1.0.25: - version "1.0.26" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" - integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.1" - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -5729,11 +5703,6 @@ puppeteer@^3.1.0: unbzip2-stream "^1.3.3" ws "^7.2.3" -qs@^6.4.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== - qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -5845,6 +5814,13 @@ readdir-scoped-modules@^1.1.0: graceful-fs "^4.1.2" once "^1.3.0" +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + reduce-extract@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/reduce-extract/-/reduce-extract-1.0.0.tgz#67f2385beda65061b5f5f4312662e8b080ca1525" @@ -6013,11 +5989,6 @@ require-package-name@^2.0.1: resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" integrity sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk= -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - requizzle@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.3.tgz#4675c90aacafb2c036bd39ba2daa4a1cb777fded" @@ -6115,6 +6086,21 @@ rollup-plugin-filesize@^9.0.0: pacote "^11.1.6" terser "^4.6.12" +rollup-plugin-livereload@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-livereload/-/rollup-plugin-livereload-1.3.0.tgz#8da90df13df6502b9d982997d6ac871092f15fdd" + integrity sha512-abyqXaB21+nFHo+vJULBqfzNx6zXABC19UyvqgDfdoxR/8pFAd041GO+GIUe8ZYC2DbuMUmioh1Lvbk14YLZgw== + dependencies: + livereload "^0.9.1" + +rollup-plugin-serve@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-serve/-/rollup-plugin-serve-1.0.1.tgz#2da2a784a916c5564609c7696cd9dacdbf17f6cc" + integrity sha512-bni0pb4s1YLvn1xBmj+dH1OsLdp8gWA4zqh3yuEtT6/YHhg3nDneGU2GwMcRDQwY2tXzuI0uSeAlF1rY+ODitg== + dependencies: + mime ">=2.0.3" + opener "1" + rollup-plugin-sourcemaps@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.2.tgz#1eed5a3e07b833dc14c4cdb1e63b300d340f4a74" @@ -6206,11 +6192,6 @@ saxes@^5.0.0: dependencies: xmlchars "^2.2.0" -secure-compare@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" - integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= - "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -7138,13 +7119,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -union@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" - integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== - dependencies: - qs "^6.4.0" - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -7179,11 +7153,6 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-join@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" - integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -7411,7 +7380,7 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^6.1.2: +ws@^6.1.2, ws@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== From 122baea0decebd4a2a51124ed5984ab2586e8dd8 Mon Sep 17 00:00:00 2001 From: telamonian Date: Mon, 8 Jun 2020 08:16:07 -0400 Subject: [PATCH 2/2] add less srcs to rollup build/watch --- .travis.yml | 1 - jest-puppeteer.config.js | 1 + package.json | 5 +- rollup.config.js | 35 +- rollup.dev.config.js | 39 +- src/js/scroll_panel.js | 5 +- yarn.lock | 1001 +++++++++++++++++++++++++++++++++++++- 7 files changed, 1057 insertions(+), 30 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf3e21fd..4b9963a5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,5 +31,4 @@ script: - yarn clean # dev build will run as part of `yarn test` - - yarn build:less - yarn test diff --git a/jest-puppeteer.config.js b/jest-puppeteer.config.js index 24a7b7c9..c1f09e21 100644 --- a/jest-puppeteer.config.js +++ b/jest-puppeteer.config.js @@ -5,6 +5,7 @@ module.exports = { port: 8081, waitOnScheme: { resources: [ + "dist/css/material.css", "dist/umd/regular-table.js", ], }, diff --git a/package.json b/package.json index d78171af..07a136f6 100644 --- a/package.json +++ b/package.json @@ -16,13 +16,13 @@ "unpkg": "dist/umd/regular-table.js", "jsdelivr": "dist/umd/regular-table.js", "files": [ - "dist/**/*", + "dist/css/*.css", + "dist/umd/*", "src/less/*.less", "babel.config.js" ], "scripts": { "build:rollup": "rollup -c rollup.config.js", - "build:less": "lessc src/less/material.less dist/css/material.css", "build": "npm-run-all -p build:*", "clean": "rimraf dist", "docs": "jsdoc2md src/js/index.js --separators --heading-depth 1 > api.md", @@ -66,6 +66,7 @@ "rollup": "^2.13.1", "rollup-plugin-filesize": "^9.0.0", "rollup-plugin-livereload": "^1.3.0", + "rollup-plugin-postcss": "^3.1.2", "rollup-plugin-serve": "^1.0.1", "rollup-plugin-sourcemaps": "^0.6.2", "rollup-plugin-terser": "^6.1.0", diff --git a/rollup.config.js b/rollup.config.js index b472e3d0..1f48d4a1 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,24 +1,47 @@ import babel from "@rollup/plugin-babel"; import filesize from "rollup-plugin-filesize"; +import postcss from "rollup-plugin-postcss" import sourcemaps from "rollup-plugin-sourcemaps"; import {terser} from "rollup-plugin-terser"; -export default { +export default [{ + input: "src/less/material.less", + output: { + dir: "dist/css", + }, + plugins: [ + postcss({ + inject: false, + extract: "material.css", + sourceMap: false, + minimize: true, + }), + ], + watch: { + clearScreen: false, + }, +}, +{ input: "src/js/index.js", + output: { + sourcemap: true, + file: "dist/umd/regular-table.js", + }, plugins: [ babel({ exclude: "node_modules/**", babelHelpers: "bundled", }), filesize(), + postcss({ + inject: false, + sourceMap: false, + minimize: true, + }), sourcemaps(), terser(), ], watch: { clearScreen: false, }, - output: { - sourcemap: true, - file: "dist/umd/regular-table.js", - }, -}; +}]; diff --git a/rollup.dev.config.js b/rollup.dev.config.js index 720105b1..51d8daf1 100644 --- a/rollup.dev.config.js +++ b/rollup.dev.config.js @@ -1,7 +1,8 @@ import babel from "@rollup/plugin-babel"; import filesize from "rollup-plugin-filesize"; -import livereload from 'rollup-plugin-livereload' -import serve from 'rollup-plugin-serve' +import livereload from "rollup-plugin-livereload" +import postcss from "rollup-plugin-postcss" +import serve from "rollup-plugin-serve" import sourcemaps from "rollup-plugin-sourcemaps"; export default commandLineArgs => { @@ -9,15 +10,39 @@ export default commandLineArgs => { // ref: https://github.com/rollup/rollup/issues/2694#issuecomment-463915954 delete commandLineArgs.port; - return { + return [{ + input: "src/less/material.less", + output: { + dir: "dist/css", + }, + plugins: [ + postcss({ + inject: false, + extract: "material.css", + sourceMap: true, + }) + ], + watch: { + clearScreen: false, + }, + }, + { input: "src/js/index.js", + output: { + sourcemap: true, + file: "dist/umd/regular-table.js", + }, plugins: [ babel({ exclude: "node_modules/**", babelHelpers: "bundled", }), filesize(), - livereload('dist'), + livereload("dist"), + postcss({ + inject: false, + sourceMap: true, + }), serve({ contentBase: [".", "examples"], port @@ -27,9 +52,5 @@ export default commandLineArgs => { watch: { clearScreen: false, }, - output: { - sourcemap: true, - file: "dist/umd/regular-table.js", - }, - }; + }]; }; diff --git a/src/js/scroll_panel.js b/src/js/scroll_panel.js index 2de2d671..0b656f63 100644 --- a/src/js/scroll_panel.js +++ b/src/js/scroll_panel.js @@ -8,9 +8,11 @@ * */ -import {css, log_perf, html, throttlePromise} from "./utils"; +import {log_perf, html, throttlePromise} from "./utils"; import {DEBUG, BROWSER_MAX_HEIGHT, DOUBLE_BUFFER_RECREATE, DOUBLE_BUFFER_ROW, DOUBLE_BUFFER_COLUMN} from "./constants"; +import container_css from "../less/container.less"; + /** * Handles the virtual scroll pane, as well as the double buffering * of the underlying . This DOM structure looks a little like @@ -64,7 +66,6 @@ export class RegularVirtualTableViewModel extends HTMLElement { create_shadow_dom() { this.attachShadow({mode: "open"}); const slot = ``; - const container_css = css`src/less/container.less`; this.shadowRoot.innerHTML = html`