Minor corrections

This commit is contained in:
Bill Ewanick 2021-08-24 10:45:23 -04:00 committed by Raphael Megzari
parent 29cb3e0729
commit 1b76da0cad

View file

@ -32,7 +32,7 @@ Using a different tool forces to commit a lock file to the repository. Those fil
Exceptions to this rule are: Exceptions to this rule are:
- when you encounter one of the bugs from a nix tool. In each of the tool specific instructions, known problems will be detailed. If you have a problem with a particular tool, then it's best to try another tool, even if this means you will have to recreate a lock file and commit it to nixpkgs. In general yarn2nix has less known problems and so a simple search in nixpkgs will reveal many yarn.lock files commited - when you encounter one of the bugs from a nix tool. In each of the tool specific instructions, known problems will be detailed. If you have a problem with a particular tool, then it's best to try another tool, even if this means you will have to recreate a lock file and commit it to nixpkgs. In general yarn2nix has less known problems and so a simple search in nixpkgs will reveal many yarn.lock files committed
- Some lock files contain particular version of a package that has been pulled off npm for some reason. In that case, you can recreate upstream lock (by removing the original and `npm install`, `yarn`, ...) and commit this to nixpkgs. - Some lock files contain particular version of a package that has been pulled off npm for some reason. In that case, you can recreate upstream lock (by removing the original and `npm install`, `yarn`, ...) and commit this to nixpkgs.
- The only tool that supports workspaces (a feature of npm that helps manage sub-directories with different package.json from a single top level package.json) is yarn2nix. If upstream has workspaces you should try yarn2nix. - The only tool that supports workspaces (a feature of npm that helps manage sub-directories with different package.json from a single top level package.json) is yarn2nix. If upstream has workspaces you should try yarn2nix.
@ -106,15 +106,15 @@ requires `node-gyp-build`, so [we override](https://github.com/NixOS/nixpkgs/blo
To add a package from NPM to nixpkgs: To add a package from NPM to nixpkgs:
1. Modify `pkgs/development/node-packages/node-packages.json` to add, update 1. Modify `pkgs/development/node-packages/node-packages.json` to add, update
or remove package entries to have it included in `nodePackages` and or remove package entries to have it included in `nodePackages` and
`nodePackages_latest`. `nodePackages_latest`.
2. Run the script: `cd pkgs/development/node-packages && ./generate.sh`. 2. Run the script: `cd pkgs/development/node-packages && ./generate.sh`.
3. Build your new package to test your changes: 3. Build your new package to test your changes:
`cd /path/to/nixpkgs && nix-build -A nodePackages.<new-or-updated-package>`. `cd /path/to/nixpkgs && nix-build -A nodePackages.<new-or-updated-package>`.
To build against the latest stable Current Node.js version (e.g. 14.x): To build against the latest stable Current Node.js version (e.g. 14.x):
`nix-build -A nodePackages_latest.<new-or-updated-package>` `nix-build -A nodePackages_latest.<new-or-updated-package>`
4. Add and commit all modified and generated files. 4. Add and commit all modified and generated files.
For more information about the generation process, consult the For more information about the generation process, consult the
[README.md](https://github.com/svanderburg/node2nix) file of the `node2nix` [README.md](https://github.com/svanderburg/node2nix) file of the `node2nix`
@ -132,7 +132,7 @@ you will need to generate a nix expression for the dependencies
- Most probably you will need the `--development` to include the `devDependencies` - Most probably you will need the `--development` to include the `devDependencies`
so the command will most likely be so the command will most likely be
`node2nix --developmennt -l package-lock.json` `node2nix --development -l package-lock.json`
[link to the doc in the repo](https://github.com/svanderburg/node2nix) [link to the doc in the repo](https://github.com/svanderburg/node2nix)
@ -153,7 +153,7 @@ you will need at least a yarn.lock and yarn.nix file
#### mkYarnPackage {#javascript-yarn2nix-mkYarnPackage} #### mkYarnPackage {#javascript-yarn2nix-mkYarnPackage}
this will by default try to generate a binary. For package only generating static assets (Svelte, Vue, React...), you will need to explicitely override the build step with your instructions. It's important to use the `--offline` flag. For example if you script is `"build": "something"` in package.json use this will by default try to generate a binary. For package only generating static assets (Svelte, Vue, React...), you will need to explicitly override the build step with your instructions. It's important to use the `--offline` flag. For example if you script is `"build": "something"` in package.json use
```nix ```nix
buildPhase = '' buildPhase = ''
@ -188,7 +188,7 @@ There are some other options available that can't be used inside nixpkgs. Those
### npmlock2nix {#javascript-npmlock2nix} ### npmlock2nix {#javascript-npmlock2nix}
[npmlock2nix](https://github.com/nix-community/npmlock2nix) aims at building node_modules without code generation. It hasn't reached v1 yet, the api might be suject to change. [npmlock2nix](https://github.com/nix-community/npmlock2nix) aims at building node_modules without code generation. It hasn't reached v1 yet, the api might be subject to change.
#### Pitfalls {#javascript-npmlock2nix-pitfalls} #### Pitfalls {#javascript-npmlock2nix-pitfalls}