|
20 | 20 | --composition $out/default.nix \ |
21 | 21 | --nodejs-${nodeVersion} |
22 | 22 | ''; |
23 | | - devPackage = (import (node2nixDrv true) { inherit pkgs nodejs; }).package; |
24 | | - prodDeps = ( |
| 23 | + # the shell attribute has the nodeDependencies, whereas the package does not |
| 24 | + node2nixProd = ( |
25 | 25 | (import (node2nixDrv false) { inherit pkgs nodejs; }).shell.override { |
26 | 26 | dontNpmInstall = true; |
27 | 27 | } |
28 | 28 | ).nodeDependencies; |
29 | | - drv = devPackage.overrideAttrs (attrs: { |
| 29 | + node2nixDev = (import (node2nixDrv true) { inherit pkgs nodejs; }).package.overrideAttrs (attrs: { |
30 | 30 | src = src; |
31 | 31 | dontNpmInstall = true; |
32 | 32 | postInstall = '' |
|
38 | 38 | # are present in `node_modules` already. It creates symlinks in |
39 | 39 | # $out/lib/node_modules/.bin according to `bin` section in `package.json`. |
40 | 40 | npm install |
41 | | -
|
42 | | - # replace dev dependencies |
43 | | - rm -rf $out/lib/node_modules/${attrs.packageName}/node_modules |
44 | | - cp -r ${prodDeps}/lib/node_modules $out/lib/node_modules/${attrs.packageName}/ |
45 | | -
|
46 | | - # Create symlink to the deployed executable folder, if applicable |
47 | | - if [ -d "$out/lib/node_modules/.bin" ] |
48 | | - then |
49 | | - ln -s $out/lib/node_modules/.bin $out/bin |
50 | | - fi |
51 | 41 | ''; |
52 | 42 | }); |
| 43 | + name = "${builtins.replaceStrings ["/" "@"] ["_" ""] node2nixDev.packageName}-${node2nixDev.version}"; |
| 44 | + drv = runCommandNoCC name {} '' |
| 45 | + mkdir -p $out/lib/node_modules/${node2nixDev.packageName} |
| 46 | + # copy only the dist and package.json |
| 47 | + cp -r ${node2nixDev}/lib/node_modules/${node2nixDev.packageName}/dist $out/lib/node_modules/${node2nixDev.packageName}/ |
| 48 | + cp -r ${node2nixDev}/lib/node_modules/${node2nixDev.packageName}/package.json $out/lib/node_modules/${node2nixDev.packageName}/ |
| 49 | + # copy over the production dependencies |
| 50 | + cp -r ${node2nixProd}/lib/node_modules $out/lib/node_modules/${node2nixDev.packageName}/ |
| 51 | + # create symlink to the deployed executable folder, if applicable |
| 52 | + if [ -d "${node2nixDev}/lib/node_modules/.bin" ]; then |
| 53 | + cp -r ${node2nixDev}/lib/node_modules/.bin $out/lib/node_modules/ |
| 54 | + ln -s $out/lib/node_modules/.bin $out/bin |
| 55 | + fi |
| 56 | + ''; |
53 | 57 | in |
54 | 58 | drv |
0 commit comments