conda-forge / conda-forge/conda-forge.github.io
JavaScript Packing Issues and Best Practices
- Dominant language
- JavaScript
- Stars
- 170
- Forks
- 320
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 5
Description
Hello all, I currently see a few issues surrounding the creation and maintainence of JavaScript packages:
1. The current way of building JS packages (`npm install -g .`) no longer works with conda build v3.
* For example, https://github.com/conda-forge/jstz-feedstock/pull/1 produces the following: `Error: lib/node_modules/jstz is a symlink to a path that may not exist after the build is completed (../../../work/jstz-2.0.0)`
* This is apparently because of changes to npm (CC @isuruf @minrk)
* The fix is `npm pack; npm install -g pkg-version.tgz`
2. Because of (1), all PRs the bot is making against JS packages are broken.
3. The maintainers of most JS packages (@sannykr @cshaley) haven't been responsive to the bots PRs or gitter (but it hasn't been that long on gitter).
4. `npm` seems to install a copy of all dependencies for each package that is installed. Is there any way around this so that we can have real dependency chains on the graph in conda?
5. Related to (4), do we need to use `npm` to install JS packages at all? If all `npm install` is doing is shoving some files into a known directory and adding some symlinks, it seems like we could do that with conda-build as well. It is not as though there would be any penalty or collision with npm either, since npm would copy the package again anyway.
Anyway, some feedback, guidance, and discussion would be most welcome! CC @conda-forge/core
Contributor guide
Assessment
This issue has not been assessed yet.