How to install npm packages in NixOS?
Clash Royale CLAN TAG#URR8PPP
up vote
6
down vote
favorite
In NixOS, I installed the package yarn
as usual by running $ nix-env -i yarn
. Now I am attempting to run yarn
via $ yarn start
. But this leads me to the following error.
$ yarn start
yarn start v0.20.3
$ webpack-dev-server --env dev
sh: webpack-dev-server: command not found
error Command failed with exit code 127.
When I try to install webpack-dev-server
in my usual NixOS way I get a 'matches no derivations' error.
$ nix-env -i webpack-dev-server
error: selector ‘webpack-dev-server’ matches no derivations
I read that webpack-dev-server
is an npm package, and am unsure of a couple questions regarding the relevance of that in this case.
- Does it make sense to use npm, a different package manager than nix,
under Nix? - If answer to (1) is yes, then how to install npm on NixOS? I do not
see npm available when searching vianix-env
, as$ nix-env -qa npm
also matches no derivations.
What is the correct way to install webpack-dev-server
on NixOS?
EDIT
I attempted to install webpack-dev-server
following the commented link and was able to install node2nix
, but am not able to follow through on step 2 listed in the readme there.
I located the file referenced in step 2 in /nix/store
at
/nix/store/sgk7sxgqxrv2axkxjwc3y15apcqbrv1z-nixos-17.03.1482.1b57bf274a/nixos/pkgs/development/node-packages/node-packages.json
I can open that file to view the npm packages listed, but the permissions are read-only, even running with sudo -- so I would need to edit it's permissions in order to alter it.
It seems that I should not be editing this /nix/store
file directly and should instead be manipulating it indirectly via nix. Am I correct that I should not be editing this file directly? If so, how else can I complete step 2 by using nix or something to add webpack-dev-server
to it?
nixos npm
add a comment |
up vote
6
down vote
favorite
In NixOS, I installed the package yarn
as usual by running $ nix-env -i yarn
. Now I am attempting to run yarn
via $ yarn start
. But this leads me to the following error.
$ yarn start
yarn start v0.20.3
$ webpack-dev-server --env dev
sh: webpack-dev-server: command not found
error Command failed with exit code 127.
When I try to install webpack-dev-server
in my usual NixOS way I get a 'matches no derivations' error.
$ nix-env -i webpack-dev-server
error: selector ‘webpack-dev-server’ matches no derivations
I read that webpack-dev-server
is an npm package, and am unsure of a couple questions regarding the relevance of that in this case.
- Does it make sense to use npm, a different package manager than nix,
under Nix? - If answer to (1) is yes, then how to install npm on NixOS? I do not
see npm available when searching vianix-env
, as$ nix-env -qa npm
also matches no derivations.
What is the correct way to install webpack-dev-server
on NixOS?
EDIT
I attempted to install webpack-dev-server
following the commented link and was able to install node2nix
, but am not able to follow through on step 2 listed in the readme there.
I located the file referenced in step 2 in /nix/store
at
/nix/store/sgk7sxgqxrv2axkxjwc3y15apcqbrv1z-nixos-17.03.1482.1b57bf274a/nixos/pkgs/development/node-packages/node-packages.json
I can open that file to view the npm packages listed, but the permissions are read-only, even running with sudo -- so I would need to edit it's permissions in order to alter it.
It seems that I should not be editing this /nix/store
file directly and should instead be manipulating it indirectly via nix. Am I correct that I should not be editing this file directly? If so, how else can I complete step 2 by using nix or something to add webpack-dev-server
to it?
nixos npm
1
github.com/NixOS/nixpkgs/tree/master/pkgs/development/…
– Emmanuel Rosa
Jul 20 '17 at 23:37
@EmmanuelRosa thank you for the link; I attempted to follow the instructions there and updated this question according to the results of that attempt.
– mherzl
Jul 21 '17 at 3:33
/nix/store
is read-only. You need to clone git repo and use-I nixpkgs=/path/to/repo
fornix-*
command
– wizzup
Jul 21 '17 at 4:21
add a comment |
up vote
6
down vote
favorite
up vote
6
down vote
favorite
In NixOS, I installed the package yarn
as usual by running $ nix-env -i yarn
. Now I am attempting to run yarn
via $ yarn start
. But this leads me to the following error.
$ yarn start
yarn start v0.20.3
$ webpack-dev-server --env dev
sh: webpack-dev-server: command not found
error Command failed with exit code 127.
When I try to install webpack-dev-server
in my usual NixOS way I get a 'matches no derivations' error.
$ nix-env -i webpack-dev-server
error: selector ‘webpack-dev-server’ matches no derivations
I read that webpack-dev-server
is an npm package, and am unsure of a couple questions regarding the relevance of that in this case.
- Does it make sense to use npm, a different package manager than nix,
under Nix? - If answer to (1) is yes, then how to install npm on NixOS? I do not
see npm available when searching vianix-env
, as$ nix-env -qa npm
also matches no derivations.
What is the correct way to install webpack-dev-server
on NixOS?
EDIT
I attempted to install webpack-dev-server
following the commented link and was able to install node2nix
, but am not able to follow through on step 2 listed in the readme there.
I located the file referenced in step 2 in /nix/store
at
/nix/store/sgk7sxgqxrv2axkxjwc3y15apcqbrv1z-nixos-17.03.1482.1b57bf274a/nixos/pkgs/development/node-packages/node-packages.json
I can open that file to view the npm packages listed, but the permissions are read-only, even running with sudo -- so I would need to edit it's permissions in order to alter it.
It seems that I should not be editing this /nix/store
file directly and should instead be manipulating it indirectly via nix. Am I correct that I should not be editing this file directly? If so, how else can I complete step 2 by using nix or something to add webpack-dev-server
to it?
nixos npm
In NixOS, I installed the package yarn
as usual by running $ nix-env -i yarn
. Now I am attempting to run yarn
via $ yarn start
. But this leads me to the following error.
$ yarn start
yarn start v0.20.3
$ webpack-dev-server --env dev
sh: webpack-dev-server: command not found
error Command failed with exit code 127.
When I try to install webpack-dev-server
in my usual NixOS way I get a 'matches no derivations' error.
$ nix-env -i webpack-dev-server
error: selector ‘webpack-dev-server’ matches no derivations
I read that webpack-dev-server
is an npm package, and am unsure of a couple questions regarding the relevance of that in this case.
- Does it make sense to use npm, a different package manager than nix,
under Nix? - If answer to (1) is yes, then how to install npm on NixOS? I do not
see npm available when searching vianix-env
, as$ nix-env -qa npm
also matches no derivations.
What is the correct way to install webpack-dev-server
on NixOS?
EDIT
I attempted to install webpack-dev-server
following the commented link and was able to install node2nix
, but am not able to follow through on step 2 listed in the readme there.
I located the file referenced in step 2 in /nix/store
at
/nix/store/sgk7sxgqxrv2axkxjwc3y15apcqbrv1z-nixos-17.03.1482.1b57bf274a/nixos/pkgs/development/node-packages/node-packages.json
I can open that file to view the npm packages listed, but the permissions are read-only, even running with sudo -- so I would need to edit it's permissions in order to alter it.
It seems that I should not be editing this /nix/store
file directly and should instead be manipulating it indirectly via nix. Am I correct that I should not be editing this file directly? If so, how else can I complete step 2 by using nix or something to add webpack-dev-server
to it?
nixos npm
nixos npm
edited Jul 21 '17 at 3:37
asked Jul 20 '17 at 22:19
mherzl
375318
375318
1
github.com/NixOS/nixpkgs/tree/master/pkgs/development/…
– Emmanuel Rosa
Jul 20 '17 at 23:37
@EmmanuelRosa thank you for the link; I attempted to follow the instructions there and updated this question according to the results of that attempt.
– mherzl
Jul 21 '17 at 3:33
/nix/store
is read-only. You need to clone git repo and use-I nixpkgs=/path/to/repo
fornix-*
command
– wizzup
Jul 21 '17 at 4:21
add a comment |
1
github.com/NixOS/nixpkgs/tree/master/pkgs/development/…
– Emmanuel Rosa
Jul 20 '17 at 23:37
@EmmanuelRosa thank you for the link; I attempted to follow the instructions there and updated this question according to the results of that attempt.
– mherzl
Jul 21 '17 at 3:33
/nix/store
is read-only. You need to clone git repo and use-I nixpkgs=/path/to/repo
fornix-*
command
– wizzup
Jul 21 '17 at 4:21
1
1
github.com/NixOS/nixpkgs/tree/master/pkgs/development/…
– Emmanuel Rosa
Jul 20 '17 at 23:37
github.com/NixOS/nixpkgs/tree/master/pkgs/development/…
– Emmanuel Rosa
Jul 20 '17 at 23:37
@EmmanuelRosa thank you for the link; I attempted to follow the instructions there and updated this question according to the results of that attempt.
– mherzl
Jul 21 '17 at 3:33
@EmmanuelRosa thank you for the link; I attempted to follow the instructions there and updated this question according to the results of that attempt.
– mherzl
Jul 21 '17 at 3:33
/nix/store
is read-only. You need to clone git repo and use -I nixpkgs=/path/to/repo
for nix-*
command– wizzup
Jul 21 '17 at 4:21
/nix/store
is read-only. You need to clone git repo and use -I nixpkgs=/path/to/repo
for nix-*
command– wizzup
Jul 21 '17 at 4:21
add a comment |
3 Answers
3
active
oldest
votes
up vote
12
down vote
There are multiple ways to use npm packages through nix:
For my personal projects, I use nix-shell
then within the shell I use npm scripts to prevent the need for npm global packages (like with gulp). The process looks something like this (and is probably very similar for yarn):
$ nix-shell -p nodejs-8_x
[nix-shell:yourproject]$ npm install # installs npm deps to project-local node_modules
[nix-shell:yourproject]$ npm exec (...) # using scripts configured in package.json
This works well for me since none of my packages have binary dependencies. This post describes the creation of a default.nix for your project so you won't have to specify dependencies for every invocation of nix-shell, but it's optional.
Another way is using npm2nix:
node2nix -i node-packages.json # creates ./default.nix
nix-shell # nix-shell will look for a default.nix, which above will have generated
Which will cause Nix to manage all npm packages in the project.
It may be a good idea to become familiar with nix-shell, since trying to install node packages / any dependency in your nix profile (through nix-env or nox) defeats the purpose of nix by polluting the "global" namespace.
Hope this helps!
Could you expand on this with regards to packages using binding.gyp for example: github.com/mateogianolio/nblas
– CMCDragonkai
Dec 15 '17 at 7:36
1
I found out how to do it for binary packages. You need thenodePackages_6_x.node-gyp
, and any other libraries likeblas
, then when it's all together, you can usenpm install ....
packages that use node-gyp.
– CMCDragonkai
Dec 15 '17 at 7:52
1
Regarding the first method, as an alternative to thenpm scripts
solution, I find adding global npm packages to thenix-shell
effective, e.g.nix-shell -p nodejs-8_x nodePackages.grunt-cli
. (Warning: nixos and node noob here.)
– Ryne Everett
Jan 28 at 18:29
The one thing I don't understand about the first method is how to actually install the package itself, i.e. where does the binary for the project's package.jsonbin
end up?
– Ryne Everett
Jan 28 at 20:00
@ryne-everett If you runnpm install
, executables would be linked intonode_modules/.bin
. See here.
– Luke Adams
Feb 3 at 19:21
add a comment |
up vote
5
down vote
For some reason I don't know, nodePackages is not in root namespace and can't be found by using nix-env -qa
use nix-env -qaPA 'nixos.nodePackages'
to list for avaliable packages.
$ nix-env -qaPA 'nixos.nodePackages' | grep -i web
nixos.nodePackages.webdrvr node-webdrvr-2.43.0-1
nixos.nodePackages.webpack node-webpack-2.6.1
If there is no packages you want and you can't make your own, try request it on NixOS github.
I am using just nix package manager and was able to make it work with:nix-env -f '<nixpkgs>' -qaPA nodePackages | grep tern
– zaynetro
Nov 14 at 12:52
add a comment |
up vote
0
down vote
As an alternative, I also found CMCDragonkai's comment on the Nixpkgs issue #3393:
I just found out that you can change NPM's prefix directory. Something
like:npm config set prefix '~/mutable_node_modules.
This allows you to use NPM's global installation.
So it's possible to work around the purely functional model, by
redirecting its outputs to somewhere that's not managed by Nix. But I
guess it defeats the purpose of using Nix. And not every single
software will support these types of configuration changes.
Still I feel it's very clunky having to switch between using
nix-env
for normal global Node packages, and npm for development packages. I
guess that's why there's all those porting layers such as "npm2nix".
add a comment |
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
12
down vote
There are multiple ways to use npm packages through nix:
For my personal projects, I use nix-shell
then within the shell I use npm scripts to prevent the need for npm global packages (like with gulp). The process looks something like this (and is probably very similar for yarn):
$ nix-shell -p nodejs-8_x
[nix-shell:yourproject]$ npm install # installs npm deps to project-local node_modules
[nix-shell:yourproject]$ npm exec (...) # using scripts configured in package.json
This works well for me since none of my packages have binary dependencies. This post describes the creation of a default.nix for your project so you won't have to specify dependencies for every invocation of nix-shell, but it's optional.
Another way is using npm2nix:
node2nix -i node-packages.json # creates ./default.nix
nix-shell # nix-shell will look for a default.nix, which above will have generated
Which will cause Nix to manage all npm packages in the project.
It may be a good idea to become familiar with nix-shell, since trying to install node packages / any dependency in your nix profile (through nix-env or nox) defeats the purpose of nix by polluting the "global" namespace.
Hope this helps!
Could you expand on this with regards to packages using binding.gyp for example: github.com/mateogianolio/nblas
– CMCDragonkai
Dec 15 '17 at 7:36
1
I found out how to do it for binary packages. You need thenodePackages_6_x.node-gyp
, and any other libraries likeblas
, then when it's all together, you can usenpm install ....
packages that use node-gyp.
– CMCDragonkai
Dec 15 '17 at 7:52
1
Regarding the first method, as an alternative to thenpm scripts
solution, I find adding global npm packages to thenix-shell
effective, e.g.nix-shell -p nodejs-8_x nodePackages.grunt-cli
. (Warning: nixos and node noob here.)
– Ryne Everett
Jan 28 at 18:29
The one thing I don't understand about the first method is how to actually install the package itself, i.e. where does the binary for the project's package.jsonbin
end up?
– Ryne Everett
Jan 28 at 20:00
@ryne-everett If you runnpm install
, executables would be linked intonode_modules/.bin
. See here.
– Luke Adams
Feb 3 at 19:21
add a comment |
up vote
12
down vote
There are multiple ways to use npm packages through nix:
For my personal projects, I use nix-shell
then within the shell I use npm scripts to prevent the need for npm global packages (like with gulp). The process looks something like this (and is probably very similar for yarn):
$ nix-shell -p nodejs-8_x
[nix-shell:yourproject]$ npm install # installs npm deps to project-local node_modules
[nix-shell:yourproject]$ npm exec (...) # using scripts configured in package.json
This works well for me since none of my packages have binary dependencies. This post describes the creation of a default.nix for your project so you won't have to specify dependencies for every invocation of nix-shell, but it's optional.
Another way is using npm2nix:
node2nix -i node-packages.json # creates ./default.nix
nix-shell # nix-shell will look for a default.nix, which above will have generated
Which will cause Nix to manage all npm packages in the project.
It may be a good idea to become familiar with nix-shell, since trying to install node packages / any dependency in your nix profile (through nix-env or nox) defeats the purpose of nix by polluting the "global" namespace.
Hope this helps!
Could you expand on this with regards to packages using binding.gyp for example: github.com/mateogianolio/nblas
– CMCDragonkai
Dec 15 '17 at 7:36
1
I found out how to do it for binary packages. You need thenodePackages_6_x.node-gyp
, and any other libraries likeblas
, then when it's all together, you can usenpm install ....
packages that use node-gyp.
– CMCDragonkai
Dec 15 '17 at 7:52
1
Regarding the first method, as an alternative to thenpm scripts
solution, I find adding global npm packages to thenix-shell
effective, e.g.nix-shell -p nodejs-8_x nodePackages.grunt-cli
. (Warning: nixos and node noob here.)
– Ryne Everett
Jan 28 at 18:29
The one thing I don't understand about the first method is how to actually install the package itself, i.e. where does the binary for the project's package.jsonbin
end up?
– Ryne Everett
Jan 28 at 20:00
@ryne-everett If you runnpm install
, executables would be linked intonode_modules/.bin
. See here.
– Luke Adams
Feb 3 at 19:21
add a comment |
up vote
12
down vote
up vote
12
down vote
There are multiple ways to use npm packages through nix:
For my personal projects, I use nix-shell
then within the shell I use npm scripts to prevent the need for npm global packages (like with gulp). The process looks something like this (and is probably very similar for yarn):
$ nix-shell -p nodejs-8_x
[nix-shell:yourproject]$ npm install # installs npm deps to project-local node_modules
[nix-shell:yourproject]$ npm exec (...) # using scripts configured in package.json
This works well for me since none of my packages have binary dependencies. This post describes the creation of a default.nix for your project so you won't have to specify dependencies for every invocation of nix-shell, but it's optional.
Another way is using npm2nix:
node2nix -i node-packages.json # creates ./default.nix
nix-shell # nix-shell will look for a default.nix, which above will have generated
Which will cause Nix to manage all npm packages in the project.
It may be a good idea to become familiar with nix-shell, since trying to install node packages / any dependency in your nix profile (through nix-env or nox) defeats the purpose of nix by polluting the "global" namespace.
Hope this helps!
There are multiple ways to use npm packages through nix:
For my personal projects, I use nix-shell
then within the shell I use npm scripts to prevent the need for npm global packages (like with gulp). The process looks something like this (and is probably very similar for yarn):
$ nix-shell -p nodejs-8_x
[nix-shell:yourproject]$ npm install # installs npm deps to project-local node_modules
[nix-shell:yourproject]$ npm exec (...) # using scripts configured in package.json
This works well for me since none of my packages have binary dependencies. This post describes the creation of a default.nix for your project so you won't have to specify dependencies for every invocation of nix-shell, but it's optional.
Another way is using npm2nix:
node2nix -i node-packages.json # creates ./default.nix
nix-shell # nix-shell will look for a default.nix, which above will have generated
Which will cause Nix to manage all npm packages in the project.
It may be a good idea to become familiar with nix-shell, since trying to install node packages / any dependency in your nix profile (through nix-env or nox) defeats the purpose of nix by polluting the "global" namespace.
Hope this helps!
edited Sep 2 '17 at 20:01
answered Jul 25 '17 at 20:55
Luke Adams
1213
1213
Could you expand on this with regards to packages using binding.gyp for example: github.com/mateogianolio/nblas
– CMCDragonkai
Dec 15 '17 at 7:36
1
I found out how to do it for binary packages. You need thenodePackages_6_x.node-gyp
, and any other libraries likeblas
, then when it's all together, you can usenpm install ....
packages that use node-gyp.
– CMCDragonkai
Dec 15 '17 at 7:52
1
Regarding the first method, as an alternative to thenpm scripts
solution, I find adding global npm packages to thenix-shell
effective, e.g.nix-shell -p nodejs-8_x nodePackages.grunt-cli
. (Warning: nixos and node noob here.)
– Ryne Everett
Jan 28 at 18:29
The one thing I don't understand about the first method is how to actually install the package itself, i.e. where does the binary for the project's package.jsonbin
end up?
– Ryne Everett
Jan 28 at 20:00
@ryne-everett If you runnpm install
, executables would be linked intonode_modules/.bin
. See here.
– Luke Adams
Feb 3 at 19:21
add a comment |
Could you expand on this with regards to packages using binding.gyp for example: github.com/mateogianolio/nblas
– CMCDragonkai
Dec 15 '17 at 7:36
1
I found out how to do it for binary packages. You need thenodePackages_6_x.node-gyp
, and any other libraries likeblas
, then when it's all together, you can usenpm install ....
packages that use node-gyp.
– CMCDragonkai
Dec 15 '17 at 7:52
1
Regarding the first method, as an alternative to thenpm scripts
solution, I find adding global npm packages to thenix-shell
effective, e.g.nix-shell -p nodejs-8_x nodePackages.grunt-cli
. (Warning: nixos and node noob here.)
– Ryne Everett
Jan 28 at 18:29
The one thing I don't understand about the first method is how to actually install the package itself, i.e. where does the binary for the project's package.jsonbin
end up?
– Ryne Everett
Jan 28 at 20:00
@ryne-everett If you runnpm install
, executables would be linked intonode_modules/.bin
. See here.
– Luke Adams
Feb 3 at 19:21
Could you expand on this with regards to packages using binding.gyp for example: github.com/mateogianolio/nblas
– CMCDragonkai
Dec 15 '17 at 7:36
Could you expand on this with regards to packages using binding.gyp for example: github.com/mateogianolio/nblas
– CMCDragonkai
Dec 15 '17 at 7:36
1
1
I found out how to do it for binary packages. You need the
nodePackages_6_x.node-gyp
, and any other libraries like blas
, then when it's all together, you can use npm install ....
packages that use node-gyp.– CMCDragonkai
Dec 15 '17 at 7:52
I found out how to do it for binary packages. You need the
nodePackages_6_x.node-gyp
, and any other libraries like blas
, then when it's all together, you can use npm install ....
packages that use node-gyp.– CMCDragonkai
Dec 15 '17 at 7:52
1
1
Regarding the first method, as an alternative to the
npm scripts
solution, I find adding global npm packages to the nix-shell
effective, e.g. nix-shell -p nodejs-8_x nodePackages.grunt-cli
. (Warning: nixos and node noob here.)– Ryne Everett
Jan 28 at 18:29
Regarding the first method, as an alternative to the
npm scripts
solution, I find adding global npm packages to the nix-shell
effective, e.g. nix-shell -p nodejs-8_x nodePackages.grunt-cli
. (Warning: nixos and node noob here.)– Ryne Everett
Jan 28 at 18:29
The one thing I don't understand about the first method is how to actually install the package itself, i.e. where does the binary for the project's package.json
bin
end up?– Ryne Everett
Jan 28 at 20:00
The one thing I don't understand about the first method is how to actually install the package itself, i.e. where does the binary for the project's package.json
bin
end up?– Ryne Everett
Jan 28 at 20:00
@ryne-everett If you run
npm install
, executables would be linked into node_modules/.bin
. See here.– Luke Adams
Feb 3 at 19:21
@ryne-everett If you run
npm install
, executables would be linked into node_modules/.bin
. See here.– Luke Adams
Feb 3 at 19:21
add a comment |
up vote
5
down vote
For some reason I don't know, nodePackages is not in root namespace and can't be found by using nix-env -qa
use nix-env -qaPA 'nixos.nodePackages'
to list for avaliable packages.
$ nix-env -qaPA 'nixos.nodePackages' | grep -i web
nixos.nodePackages.webdrvr node-webdrvr-2.43.0-1
nixos.nodePackages.webpack node-webpack-2.6.1
If there is no packages you want and you can't make your own, try request it on NixOS github.
I am using just nix package manager and was able to make it work with:nix-env -f '<nixpkgs>' -qaPA nodePackages | grep tern
– zaynetro
Nov 14 at 12:52
add a comment |
up vote
5
down vote
For some reason I don't know, nodePackages is not in root namespace and can't be found by using nix-env -qa
use nix-env -qaPA 'nixos.nodePackages'
to list for avaliable packages.
$ nix-env -qaPA 'nixos.nodePackages' | grep -i web
nixos.nodePackages.webdrvr node-webdrvr-2.43.0-1
nixos.nodePackages.webpack node-webpack-2.6.1
If there is no packages you want and you can't make your own, try request it on NixOS github.
I am using just nix package manager and was able to make it work with:nix-env -f '<nixpkgs>' -qaPA nodePackages | grep tern
– zaynetro
Nov 14 at 12:52
add a comment |
up vote
5
down vote
up vote
5
down vote
For some reason I don't know, nodePackages is not in root namespace and can't be found by using nix-env -qa
use nix-env -qaPA 'nixos.nodePackages'
to list for avaliable packages.
$ nix-env -qaPA 'nixos.nodePackages' | grep -i web
nixos.nodePackages.webdrvr node-webdrvr-2.43.0-1
nixos.nodePackages.webpack node-webpack-2.6.1
If there is no packages you want and you can't make your own, try request it on NixOS github.
For some reason I don't know, nodePackages is not in root namespace and can't be found by using nix-env -qa
use nix-env -qaPA 'nixos.nodePackages'
to list for avaliable packages.
$ nix-env -qaPA 'nixos.nodePackages' | grep -i web
nixos.nodePackages.webdrvr node-webdrvr-2.43.0-1
nixos.nodePackages.webpack node-webpack-2.6.1
If there is no packages you want and you can't make your own, try request it on NixOS github.
edited Jul 21 '17 at 4:16
answered Jul 21 '17 at 4:09
wizzup
22018
22018
I am using just nix package manager and was able to make it work with:nix-env -f '<nixpkgs>' -qaPA nodePackages | grep tern
– zaynetro
Nov 14 at 12:52
add a comment |
I am using just nix package manager and was able to make it work with:nix-env -f '<nixpkgs>' -qaPA nodePackages | grep tern
– zaynetro
Nov 14 at 12:52
I am using just nix package manager and was able to make it work with:
nix-env -f '<nixpkgs>' -qaPA nodePackages | grep tern
– zaynetro
Nov 14 at 12:52
I am using just nix package manager and was able to make it work with:
nix-env -f '<nixpkgs>' -qaPA nodePackages | grep tern
– zaynetro
Nov 14 at 12:52
add a comment |
up vote
0
down vote
As an alternative, I also found CMCDragonkai's comment on the Nixpkgs issue #3393:
I just found out that you can change NPM's prefix directory. Something
like:npm config set prefix '~/mutable_node_modules.
This allows you to use NPM's global installation.
So it's possible to work around the purely functional model, by
redirecting its outputs to somewhere that's not managed by Nix. But I
guess it defeats the purpose of using Nix. And not every single
software will support these types of configuration changes.
Still I feel it's very clunky having to switch between using
nix-env
for normal global Node packages, and npm for development packages. I
guess that's why there's all those porting layers such as "npm2nix".
add a comment |
up vote
0
down vote
As an alternative, I also found CMCDragonkai's comment on the Nixpkgs issue #3393:
I just found out that you can change NPM's prefix directory. Something
like:npm config set prefix '~/mutable_node_modules.
This allows you to use NPM's global installation.
So it's possible to work around the purely functional model, by
redirecting its outputs to somewhere that's not managed by Nix. But I
guess it defeats the purpose of using Nix. And not every single
software will support these types of configuration changes.
Still I feel it's very clunky having to switch between using
nix-env
for normal global Node packages, and npm for development packages. I
guess that's why there's all those porting layers such as "npm2nix".
add a comment |
up vote
0
down vote
up vote
0
down vote
As an alternative, I also found CMCDragonkai's comment on the Nixpkgs issue #3393:
I just found out that you can change NPM's prefix directory. Something
like:npm config set prefix '~/mutable_node_modules.
This allows you to use NPM's global installation.
So it's possible to work around the purely functional model, by
redirecting its outputs to somewhere that's not managed by Nix. But I
guess it defeats the purpose of using Nix. And not every single
software will support these types of configuration changes.
Still I feel it's very clunky having to switch between using
nix-env
for normal global Node packages, and npm for development packages. I
guess that's why there's all those porting layers such as "npm2nix".
As an alternative, I also found CMCDragonkai's comment on the Nixpkgs issue #3393:
I just found out that you can change NPM's prefix directory. Something
like:npm config set prefix '~/mutable_node_modules.
This allows you to use NPM's global installation.
So it's possible to work around the purely functional model, by
redirecting its outputs to somewhere that's not managed by Nix. But I
guess it defeats the purpose of using Nix. And not every single
software will support these types of configuration changes.
Still I feel it's very clunky having to switch between using
nix-env
for normal global Node packages, and npm for development packages. I
guess that's why there's all those porting layers such as "npm2nix".
answered 2 days ago
toraritte
17310
17310
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f379842%2fhow-to-install-npm-packages-in-nixos%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
github.com/NixOS/nixpkgs/tree/master/pkgs/development/…
– Emmanuel Rosa
Jul 20 '17 at 23:37
@EmmanuelRosa thank you for the link; I attempted to follow the instructions there and updated this question according to the results of that attempt.
– mherzl
Jul 21 '17 at 3:33
/nix/store
is read-only. You need to clone git repo and use-I nixpkgs=/path/to/repo
fornix-*
command– wizzup
Jul 21 '17 at 4:21