Initial commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# yarn-plugin-nixify
|
||||
|
||||
**WORK IN PROGRESS**
|
||||
|
||||
Generates a Nix expression to build a Yarn v2 package.
|
||||
|
||||
## Usage
|
||||
|
||||
```sh
|
||||
yarn plugin import https://raw.githubusercontent.com/stephank/yarn-plugin-nixify/main/dist/yarn-plugin-nixify.js
|
||||
yarn
|
||||
yarn nixify
|
||||
nix-build
|
||||
```
|
||||
|
||||
The `yarn nixify` command always updates `yarn-project.nix`, but only writes a
|
||||
(minimal) `default.nix` if it doesn't exist yet. The `default.nix` is intended
|
||||
to be customized, for example:
|
||||
|
||||
```nix
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
|
||||
let
|
||||
|
||||
project = pkgs.callPackage ./yarn-project.nix {
|
||||
# Example of selecting a specific version of Node.js.
|
||||
nodejs = pkgs.nodejs-14_x;
|
||||
};
|
||||
|
||||
in project.overrideAttrs (oldAttrs: {
|
||||
|
||||
# Example of adding dependencies to the environment.
|
||||
# Native modules sometimes need these to build.
|
||||
buildInputs = oldAttrs.buildInputs ++ [ python3 ];
|
||||
|
||||
# Example of invoking a build step in your project.
|
||||
buildPhase = ''
|
||||
yarn build
|
||||
'';
|
||||
|
||||
})
|
||||
```
|
||||
|
||||
## Hacking
|
||||
|
||||
```sh
|
||||
# In this directory:
|
||||
yarn
|
||||
yarn build-dev
|
||||
|
||||
# In your test project:
|
||||
yarn plugin import /path/to/yarn-plugin-nixify/dist/yarn-plugin-nixify.dev.js
|
||||
```
|
||||
|
||||
(Alternatively, add a direct reference in `.yarnrc.yml`.)
|
||||
Reference in New Issue
Block a user