Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[fix] Downgrade
npm
for Git submodule support
`npm install` used to `git clone --recursive` the things that it builds out of GitHub; but it [doesn't do that anymore](npm/cli#2774). Unfortunately, we depend on that feature, because a submodule is how https://github.com/Level/rocksdb pulls in the Facebook code. This fixes a really absconse error message, which is a huge pain to debug BTW: ``` npm ERR! make: *** No rule to make target 'Release/obj.target/rocksdb/deps/rocksdb/rocksdb/cache/cache.o', needed by 'Release/obj.target/deps/rocksdb/rocksdb.a'. Stop. ``` (That's because there's no source code under `deps/rocksdb/rocksdb`, on account of that directory being a Git submodule.) It seems... difficult to convince npm to keep its temporary files for inspection. I had to temporarily push a hacked `package.json` into the `master` branch of `epfl-si/rocksdb-node`, with an `install` script entry that reads ``` "install": "node-gyp-build || (sleep 3600; exit 1)", ``` Confusingly enough, modern `npm`s will do the right thing (i.e. pull the submodules) when one runs e.g. `npm i -g epfl-si/rocksdb-node`; but not when said `epfl-si/rocksdb-node` is a dependency in a `package.json`, as is the case here. Go figure.
- Loading branch information