diff options
| author | Tomodachi94 <tomodachi94@protonmail.com> | 2025-11-29 20:25:21 -0800 |
|---|---|---|
| committer | Tomodachi94 <tomodachi94@protonmail.com> | 2025-11-29 20:34:41 -0800 |
| commit | 7bf3aa9d0da46f585c58f818bd718f116ca78128 (patch) | |
| tree | 0fed335a4f08e732e8c5474d507de77a4122e191 /doc/languages-frameworks | |
| parent | python3Packages.reportlab: 4.4.3 -> 4.4.5 (#446164) (diff) | |
| download | nixpkgs-7bf3aa9d0da46f585c58f818bd718f116ca78128.tar.gz | |
doc/javascript: move nodePackages information back to README.md
Adding new packages here is discouraged, for reasons enumerated in
https://github.com/NixOS/nixpkgs/issues/229475, so let's move this
(mostly developer-facing) documentation back into its original location
in pkgs/development/node-packages/README.md.
Diffstat (limited to 'doc/languages-frameworks')
| -rw-r--r-- | doc/languages-frameworks/javascript.section.md | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index d19884154438..360124bbcdac 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -95,93 +95,6 @@ The node_modules abstraction can be also used to build some web framework fronte For an example of this see how [plausible](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/web-apps/plausible/default.nix) is built. `mkYarnModules` to make the derivation containing node_modules. Then when building the frontend you can just symlink the node_modules directory. -## Javascript packages inside nixpkgs {#javascript-packages-nixpkgs} - -The [pkgs/development/node-packages](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages) folder contains a generated collection of [npm packages](https://npmjs.com/) that can be installed with the Nix package manager. - -As a rule of thumb, the package set should only provide _end-user_ software packages, such as command-line utilities. -Libraries should only be added to the package set if there is a non-npm package that requires it. - -When it is desired to use npm libraries in a development project, use the `node2nix` generator directly on the `package.json` configuration file of the project. - -The package set provides support for the official stable Node.js versions. -The latest stable LTS release in `nodePackages`, as well as the latest stable current release in `nodePackages_latest`. - -If your package uses native addons, you need to examine what kind of native build system it uses. Here are some examples: - -- `node-gyp` -- `node-gyp-builder` -- `node-pre-gyp` - -After you have identified the correct system, you need to override your package expression while adding in build system as a build input. -For example, `dat` requires `node-gyp-build`, so we override its expression in [pkgs/development/node-packages/overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/overrides.nix): - -```nix -{ - dat = prev.dat.override (oldAttrs: { - buildInputs = [ - final.node-gyp-build - pkgs.libtool - pkgs.autoconf - pkgs.automake - ]; - meta = oldAttrs.meta // { - broken = since "12"; - }; - }); -} -``` - -### Adding and updating JavaScript packages in Nixpkgs {#javascript-adding-or-updating-packages} - -To add a package from npm to Nixpkgs: - -1. Modify [pkgs/development/node-packages/node-packages.json](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/node-packages.json) to add, update or remove package entries to have it included in `nodePackages` and `nodePackages_latest`. -2. Run the script: - - ```sh - ./pkgs/development/node-packages/generate.sh - ``` - -3. Build your new package to test your changes: - - ```sh - nix-build -A nodePackages.<new-or-updated-package> - ``` - - To build against the latest stable Current Node.js version (e.g. 18.x): - - ```sh - nix-build -A nodePackages_latest.<new-or-updated-package> - ``` - - If the package doesn't build, you may need to add an override as explained above. -4. If the package's name doesn't match any of the executables it provides, add an entry in [pkgs/development/node-packages/main-programs.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/main-programs.nix). This will be the case for all scoped packages, e.g., `@angular/cli`. -5. Add and commit all modified and generated files. - -For more information about the generation process, consult the [README.md](https://github.com/svanderburg/node2nix) file of the `node2nix` tool. - -To update npm packages in Nixpkgs, run the same `generate.sh` script: - -```sh -./pkgs/development/node-packages/generate.sh -``` - -#### Git protocol error {#javascript-git-error} - -Some packages may have Git dependencies from GitHub specified with `git://`. -GitHub has [disabled unencrypted Git connections](https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git), so you may see the following error when running the generate script: - -``` -The unauthenticated git protocol on port 9418 is no longer supported -``` - -Use the following Git configuration to resolve the issue: - -```sh -git config --global url."https://github.com/".insteadOf git://github.com/ -``` - ## Tool-specific instructions {#javascript-tool-specific} ### buildNpmPackage {#javascript-buildNpmPackage} |
