citation-js / bibtex-parser-experiments

Experiments to determine a new BibTeX parser formula for Citation.js -- to be applied to other formats as well

Home Page:https://travis-ci.com/citation-js/bibtex-parser-experiments/builds

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npm install fails

retorquere opened this issue · comments

When running npm install on this repo (on Mac), I get:

> fsevents@1.2.13 install /Users/emile/github/bibtex-parser-experiments/node_modules/chokidarAt2/node_modules/fsevents
> node install.js

internal/modules/cjs/loader.js:1033
  throw err;
  ^

Error: Cannot find module 'nan'
Require stack:
- /Users/emile/github/bibtex-parser-experiments/node_modules/chokidarAt2/node_modules/fsevents/[eval]
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1030:15)
    at Function.Module._load (internal/modules/cjs/loader.js:899:27)
    at Module.require (internal/modules/cjs/loader.js:1090:19)
    at require (internal/modules/cjs/helpers.js:75:18)
    at [eval]:1:1
    at Script.runInThisContext (vm.js:131:18)
    at Object.runInThisContext (vm.js:295:38)
    at Object.<anonymous> ([eval]-wrapper:10:26)
    at Module._compile (internal/modules/cjs/loader.js:1201:30)
    at evalScript (internal/process/execution.js:98:25) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/emile/github/bibtex-parser-experiments/node_modules/chokidarAt2/node_modules/fsevents/[eval]'
  ]
}
gyp: Call to 'node -e "require('nan')"' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:314:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Darwin 19.6.0
gyp ERR! command "/usr/local/Cellar/node/14.5.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/emile/github/bibtex-parser-experiments/node_modules/chokidarAt2/node_modules/fsevents
gyp ERR! node -v v14.5.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 

That is a bit annoying, I think fsevents is a Mac-only dependency. Could you try

  1. Removing package-lock.json and running npm install to see if it generates a better package lock?
  2. Running npm install --no-optional as it should skip fsevents altogether?

fsevents/fsevents#321 might have more info.

option 1 gets met past the problem.

Could you share that package lock with me so I can diff it?

npm test stops at

> node ./test/

|              | Init             | Time (single entry) | Time (3345 entries) |
|--------------|-----------------:|--------------------:|--------------------:|
| citationjs-old | 0.940ms ± 2.1% | 0.775ms ± 1.0% | 1.74e+3ms ± 2.9% |
| citationjs | 5.39ms ± 0.8% | 0.435ms ± 0.7% | 980ms ± 3.9% |
| astrocite |internal/modules/cjs/loader.js:1033
  throw err;
  ^

Error: Cannot find module './grammar'
Require stack:
- /Users/emile/github/bibtex-parser-experiments/lib/astrocite/index.js
- /Users/emile/github/bibtex-parser-experiments/test/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1030:15)
    at Function.Module._load (internal/modules/cjs/loader.js:899:27)
    at Module.require (internal/modules/cjs/loader.js:1090:19)
    at require (internal/modules/cjs/helpers.js:75:18)
    at Object.<anonymous> (/Users/emile/github/bibtex-parser-experiments/lib/astrocite/index.js:9:38)
    at Module._compile (internal/modules/cjs/loader.js:1201:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1221:10)
    at Module.load (internal/modules/cjs/loader.js:1050:32)
    at Function.Module._load (internal/modules/cjs/loader.js:938:14)
    at Module.require (internal/modules/cjs/loader.js:1090:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/emile/github/bibtex-parser-experiments/lib/astrocite/index.js',
    '/Users/emile/github/bibtex-parser-experiments/test/index.js'
  ]
}

Damn. On my system, citationjs takes 908ms for long.bib, where the lexer I was building takes ~5s.

Regarding the error, you want to run at least the astrocite and zotero script first:

"astrocite": "pegjs src/astrocite/grammar.pegjs",
"nearley": "nearleyc -o src/nearley/grammar.js src/nearley/grammar.ne",
"zotero": "node ./tools/make-zotero.js",
"jabref": "tools/install-jabref.sh",

Ah I see. But I'm really only interested in citationjs and bbt. I commented out the rest and it worked fine.