skishore / makemeahanzi

Free, open-source Chinese character data
https://www.skishore.me/makemeahanzi/
Other
1.83k stars 465 forks source link

Running 'Make Me a Hanzi Demo' #60

Open dhowe opened 5 years ago

dhowe commented 5 years ago

Apologies if I missed this somewhere, but how does one run the 'Make Me a Hanzi Demo' ?

I assume the code is on the 'tool' or 'demo' branches, but a quick step-by-step would be much appreciated...

skishore commented 5 years ago

The demo is a Meteor app on the "demo" branch. You can find the Meteor framework here: https://www.meteor.com/

The tool branch is another Meteor app, but it's the one I use to generate the data, not to view it.

dhowe commented 5 years ago

Yes, works fine (maybe a line or two similar to above in the README)? Thanks!

In case anyone needs: $ curl https://install.meteor.com/ | sh $ git clone https://github.com/skishore/makemeahanzi.git $ cd makemeahanzi $ git checkout demo $ meteor run

tnewhook commented 3 years ago

I think the demo has broken since 2018. There are some node module updates that are not backwards-compatible. Also, there were some errors related to Babel modules. Complete output:

`meteor => Running Meteor from a checkout -- overrides project version (Meteor 1.2.1) [[[[[ C:\Users\trevo\Google Drive\makemeahanzi ]]]]]

=> Started proxy. => Started MongoDB.

Changes to your project's package version selections:

allow-deny added, version 1.1.0 autoupdate upgraded from 1.2.4 to 1.6.0 babel-compiler upgraded from 5.8.24_1 to 7.5.4 babel-runtime upgraded from 0.1.4 to 1.5.0 base64 upgraded from 1.0.4 to 1.0.12 binary-heap upgraded from 1.0.4 to 1.0.11 blaze upgraded from 2.1.3 to 2.3.4 boilerplate-generator upgraded from 1.0.4 to 1.7.1 caching-compiler upgraded from 1.0.0 to 1.2.2 callback-hook upgraded from 1.0.4 to 1.3.0 check upgraded from 1.1.0 to 1.3.1 crosswalk upgraded from 1.3.1 to 1.7.1 ddp upgraded from 1.2.2 to 1.4.0 ddp-client upgraded from 1.2.1 to 2.3.3 ddp-common upgraded from 1.2.2 to 1.4.0 ddp-server upgraded from 1.2.2 to 2.3.2 deps upgraded from 1.0.9 to 1.0.12 diff-sequence upgraded from 1.0.1 to 1.1.1 dynamic-import added, version 0.5.4 ecmascript upgraded from 0.1.6 to 0.14.4 ecmascript-runtime upgraded from 0.2.6 to 0.7.0 ecmascript-runtime-client added, version 0.11.0 ecmascript-runtime-server added, version 0.10.0 ejson upgraded from 1.0.7 to 1.1.1 es5-shim upgraded from 4.1.14 to 4.8.0 fastclick removed from your project fetch added, version 0.1.1 geojson-utils upgraded from 1.0.4 to 1.0.10 hot-code-push upgraded from 1.0.0 to 1.0.4 htmljs upgraded from 1.0.5 to 1.0.11 http removed from your project id-map upgraded from 1.0.4 to 1.1.0 inter-process-messaging added, version 0.1.1 jquery upgraded from 1.11.4 to 3.0.0 launch-screen upgraded from 1.0.4 to 1.2.0 less upgraded from 2.5.1 to 3.0.1 livedata upgraded from 1.0.15 to 1.0.18 logging upgraded from 1.0.8 to 1.1.20 meteor upgraded from 1.1.10 to 1.9.3 meteor-base upgraded from 1.0.1 to 1.4.0 minifier-css added, version 1.5.3 minifier-js added, version 2.6.0 minimongo upgraded from 1.0.10 to 1.6.1 mobile-experience upgraded from 1.0.1 to 1.1.0 mobile-status-bar upgraded from 1.0.6 to 1.1.0 modern-browsers added, version 0.1.5 modules added, version 0.15.0 modules-runtime added, version 0.12.0 mongo upgraded from 1.1.3 to 1.10.1 mongo-decimal added, version 0.1.2 mongo-dev-server added, version 1.1.0 mongo-id upgraded from 1.0.1 to 1.0.7 npm-mongo* upgraded from 1.4.39_1 to 3.8.1 observe-sequence upgraded from 1.0.7 to 1.0.16 ordered-dict upgraded from 1.0.4 to 1.1.0 promise upgraded from 0.5.1 to 0.11.2 random upgraded from 1.0.5 to 1.2.0 reactive-dict upgraded from 1.1.3 to 1.3.0 reactive-var upgraded from 1.0.6 to 1.0.11 reload upgraded from 1.1.4 to 1.3.1 retry upgraded from 1.0.4 to 1.1.0 routepolicy upgraded from 1.0.6 to 1.1.0 session upgraded from 1.1.1 to 1.2.0 socket-stream-client added, version 0.3.1 standard-minifier-css added, version 1.7.1 standard-minifier-js added, version 2.6.0 standard-minifiers upgraded from 1.0.2 to 1.1.0 tracker upgraded from 1.0.9 to 1.2.0 underscore upgraded from 1.0.4 to 1.0.10 url removed from your project webapp upgraded from 1.2.3 to 1.9.1 webapp-hashing upgraded from 1.0.5 to 1.0.9

Unable to resolve some modules:

"@babel/runtime/helpers/typeof" in /C/Users/trevo/Google Drive/makemeahanzi/client/external/bootstrap.js (web.browser.legacy) "@babel/runtime/helpers/createForOfIteratorHelperLoose" in /C/Users/trevo/Google Drive/makemeahanzi/lib/animation.js (web.browser.legacy)

If you notice problems related to these missing modules, consider running:

meteor npm install --save @babel/runtime

Unable to resolve some modules:

"@babel/runtime/helpers/typeof" in /C/Users/trevo/Google Drive/makemeahanzi/client/external/bootstrap.js (web.cordova) "@babel/runtime/helpers/createForOfIteratorHelperLoose" in /C/Users/trevo/Google Drive/makemeahanzi/lib/animation.js (web.cordova)

If you notice problems related to these missing modules, consider running:

meteor npm install --save @babel/runtime

Failed to record package usage. (This error is hidden when you are not running Meteor from a checkout.) Error: DDP disconnected while connection in progress at /tools/meteor-services/service-connection.js:89:18 at packages/socket-stream-client/node.js:95:9 at Array.forEach () at ClientStream.forEachCallback (packages/socket-stream-client/common.js:30:31) at ClientStream._cleanup (packages/socket-stream-client/node.js:94:12) at ClientStream._lostConnection (packages/socket-stream-client/common.js:130:10) at packages/socket-stream-client/node.js:194:12 at packages/socket-stream-client/node.js:179:11 at runWithEnvironment (packages/meteor.js:1291:24)

W20201217-13:20:01.941(-5)? (STDERR) C:\Users\trevo\Google Drive\makemeahanzi.meteor\local\build\programs\server\boot.js:468 W20201217-13:20:02.554(-5)? (STDERR) }).run(); W20201217-13:20:02.555(-5)? (STDERR) ^ W20201217-13:20:02.555(-5)? (STDERR) W20201217-13:20:02.556(-5)? (STDERR) Error: W20201217-13:20:02.556(-5)? (STDERR) The @babel/runtime npm package could not be found in your node_modules W20201217-13:20:02.557(-5)? (STDERR) directory. Please run the following command to install it: W20201217-13:20:02.557(-5)? (STDERR) W20201217-13:20:02.558(-5)? (STDERR) meteor npm install --save @babel/runtime W20201217-13:20:02.559(-5)? (STDERR) W20201217-13:20:02.559(-5)? (STDERR) at module (packages\babel-runtime.js:20:9) W20201217-13:20:02.560(-5)? (STDERR) at fileEvaluate (packages\modules-runtime.js:336:7) W20201217-13:20:02.560(-5)? (STDERR) at Module.require (packages\modules-runtime.js:238:14) W20201217-13:20:02.561(-5)? (STDERR) at require (packages\modules-runtime.js:258:21) W20201217-13:20:02.561(-5)? (STDERR) at packages\babel-runtime.js:53:15 W20201217-13:20:02.562(-5)? (STDERR) at packages\babel-runtime.js:58:3 W20201217-13:20:02.562(-5)? (STDERR) at C:\Users\trevo\Google Drive\makemeahanzi.meteor\local\build\programs\server\boot.js:401:38 W20201217-13:20:02.563(-5)? (STDERR) at Array.forEach () W20201217-13:20:02.566(-5)? (STDERR) at C:\Users\trevo\Google Drive\makemeahanzi.meteor\local\build\programs\server\boot.js:226:21 W20201217-13:20:02.567(-5)? (STDERR) at C:\Users\trevo\Google Drive\makemeahanzi.meteor\local\build\programs\server\boot.js:464:7 => Exited with code: 1 => Your application is crashing. Waiting for file change. Terminate batch job (Y/N)? y

C:\Users\trevo\Google Drive\makemeahanzi> meteor npm install --save @babel/runtime npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\trevo\Google Drive\makemeahanzi\package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\trevo\Google Drive\makemeahanzi\package.json' npm WARN makemeahanzi No description npm WARN makemeahanzi No repository field. npm WARN makemeahanzi No README data npm WARN makemeahanzi No license field.

C:\Users\trevo\Google Drive\makemeahanzi>meteor => Running Meteor from a checkout -- overrides project version (Meteor 1.2.1) [[[[[ C:\Users\trevo\Google Drive\makemeahanzi ]]]]]

=> Started proxy.

Changes to your project's package version selections:

allow-deny added, version 1.1.0 autoupdate upgraded from 1.2.4 to 1.6.0 babel-compiler upgraded from 5.8.24_1 to 7.5.4 babel-runtime upgraded from 0.1.4 to 1.5.0 base64 upgraded from 1.0.4 to 1.0.12 binary-heap upgraded from 1.0.4 to 1.0.11 blaze upgraded from 2.1.3 to 2.3.4 boilerplate-generator upgraded from 1.0.4 to 1.7.1 caching-compiler upgraded from 1.0.0 to 1.2.2 callback-hook upgraded from 1.0.4 to 1.3.0 check upgraded from 1.1.0 to 1.3.1 crosswalk upgraded from 1.3.1 to 1.7.1 ddp upgraded from 1.2.2 to 1.4.0 ddp-client upgraded from 1.2.1 to 2.3.3 ddp-common upgraded from 1.2.2 to 1.4.0 ddp-server upgraded from 1.2.2 to 2.3.2 deps upgraded from 1.0.9 to 1.0.12 diff-sequence upgraded from 1.0.1 to 1.1.1 dynamic-import added, version 0.5.4 ecmascript upgraded from 0.1.6 to 0.14.4 ecmascript-runtime upgraded from 0.2.6 to 0.7.0 ecmascript-runtime-client added, version 0.11.0 ecmascript-runtime-server added, version 0.10.0 ejson upgraded from 1.0.7 to 1.1.1 es5-shim upgraded from 4.1.14 to 4.8.0 fastclick removed from your project fetch added, version 0.1.1 geojson-utils upgraded from 1.0.4 to 1.0.10 hot-code-push upgraded from 1.0.0 to 1.0.4 htmljs upgraded from 1.0.5 to 1.0.11 http removed from your project id-map upgraded from 1.0.4 to 1.1.0 inter-process-messaging added, version 0.1.1 jquery upgraded from 1.11.4 to 3.0.0 launch-screen upgraded from 1.0.4 to 1.2.0 less upgraded from 2.5.1 to 3.0.1 livedata upgraded from 1.0.15 to 1.0.18 logging upgraded from 1.0.8 to 1.1.20 meteor upgraded from 1.1.10 to 1.9.3 meteor-base upgraded from 1.0.1 to 1.4.0 minifier-css added, version 1.5.3 minifier-js added, version 2.6.0 minimongo upgraded from 1.0.10 to 1.6.1 mobile-experience upgraded from 1.0.1 to 1.1.0 mobile-status-bar upgraded from 1.0.6 to 1.1.0 modern-browsers added, version 0.1.5 modules added, version 0.15.0 modules-runtime added, version 0.12.0 mongo upgraded from 1.1.3 to 1.10.1 mongo-decimal added, version 0.1.2 mongo-dev-server added, version 1.1.0 mongo-id upgraded from 1.0.1 to 1.0.7 npm-mongo* upgraded from 1.4.39_1 to 3.8.1 observe-sequence upgraded from 1.0.7 to 1.0.16 ordered-dict upgraded from 1.0.4 to 1.1.0 promise upgraded from 0.5.1 to 0.11.2 random upgraded from 1.0.5 to 1.2.0 reactive-dict upgraded from 1.1.3 to 1.3.0 reactive-var upgraded from 1.0.6 to 1.0.11 reload upgraded from 1.1.4 to 1.3.1 retry upgraded from 1.0.4 to 1.1.0 routepolicy upgraded from 1.0.6 to 1.1.0 session upgraded from 1.1.1 to 1.2.0 socket-stream-client added, version 0.3.1 standard-minifier-css added, version 1.7.1 standard-minifier-js added, version 2.6.0 standard-minifiers upgraded from 1.0.2 to 1.1.0 tracker upgraded from 1.0.9 to 1.2.0 underscore upgraded from 1.0.4 to 1.0.10 url removed from your project webapp upgraded from 1.2.3 to 1.9.1 webapp-hashing upgraded from 1.0.5 to 1.0.9

=> App running at: http://localhost:3000/ Type Control-C twice to stop.

W20201217-13:21:51.108(-5)? (STDERR) (node:35456) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2) W20201217-13:21:51.108(-5)? (STDERR) (node:35456) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.`

skishore commented 3 years ago

Yeah, something has gone wrong and it's no longer possible to build or run Meteor apps on older versions of the framework.

This project was my first JavaScript project, and I didn't realize just how terrible having dependencies is. Using these libraries mean that one needs to be constantly upgrading them or else code will break. I'm not sure how to get back into a working state. At least the data is all in a separate format.

For all of my non-Meteor dependencies, I copied the version of the library I was using into the source tree and "upgraded" when necessary by replacing that copy. (Upgrading is just not useful for almost all dependencies.) Lesson learned: never depend on a package manager or any large ecosystem...