• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

devonfw / IDEasy / 9907372175

12 Jul 2024 11:49AM UTC coverage: 61.142% (-0.02%) from 61.162%
9907372175

push

github

hohwille
fixed tests

1997 of 3595 branches covered (55.55%)

Branch coverage included in aggregate %.

5296 of 8333 relevant lines covered (63.55%)

2.8 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.65
cli/src/main/java/com/devonfw/tools/ide/tool/npm/Npm.java
1
package com.devonfw.tools.ide.tool.npm;
2

3
import java.nio.file.Path;
4
import java.util.Set;
5

6
import com.devonfw.tools.ide.common.Tag;
7
import com.devonfw.tools.ide.context.IdeContext;
8
import com.devonfw.tools.ide.io.FileAccess;
9
import com.devonfw.tools.ide.tool.LocalToolCommandlet;
10
import com.devonfw.tools.ide.tool.ToolCommandlet;
11
import com.devonfw.tools.ide.tool.node.Node;
12

13
/**
14
 * {@link ToolCommandlet} for <a href="https://www.npmjs.com/">npm</a>.
15
 */
16
public class Npm extends LocalToolCommandlet {
17

18
  /**
19
   * The constructor.
20
   *
21
   * @param context the {@link IdeContext}.
22
   */
23
  public Npm(IdeContext context) {
24

25
    super(context, "npm", Set.of(Tag.JAVA_SCRIPT, Tag.BUILD));
7✔
26
  }
1✔
27

28
  @Override
29
  public boolean install(boolean silent) {
30

31
    getCommandlet(Node.class).install();
6✔
32
    return super.doInstall(silent);
4✔
33
  }
34

35
  @Override
36
  protected void postExtract(Path extractedDir) {
37

38
    FileAccess fileAccess = this.context.getFileAccess();
4✔
39
    if (this.context.getSystemInfo().isWindows()) {
5✔
40
      Path nodeHomePath = this.context.getSoftwarePath().resolve("node/");
6✔
41
      Path npmBinBath = nodeHomePath.resolve("node_modules/npm/bin/");
4✔
42
      String npm = "npm";
2✔
43
      String npx = "npx";
2✔
44
      String cmd = ".cmd";
2✔
45

46
      fileAccess.delete(nodeHomePath.resolve(npm));
5✔
47
      fileAccess.delete(nodeHomePath.resolve(npm + cmd));
7✔
48
      fileAccess.delete(nodeHomePath.resolve(npx));
5✔
49
      fileAccess.delete(nodeHomePath.resolve(npx + cmd));
7✔
50

51
      fileAccess.copy(npmBinBath.resolve(npm), nodeHomePath);
6✔
52
      fileAccess.copy(npmBinBath.resolve(npm + cmd), nodeHomePath);
8✔
53
      fileAccess.copy(npmBinBath.resolve(npx), nodeHomePath);
6✔
54
      fileAccess.copy(npmBinBath.resolve(npx + cmd), nodeHomePath);
8✔
55
    }
56
  }
1✔
57

58
  @Override
59
  public String getToolHelpArguments() {
60

61
    return "help";
×
62
  }
63
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc