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

devonfw / IDEasy / 13374874066

17 Feb 2025 04:35PM UTC coverage: 67.959% (-0.004%) from 67.963%
13374874066

Pull #1016

github

web-flow
Merge 44a5720cc into e1743f868
Pull Request #1016: #998: introduce config file for NPM dependency

2970 of 4803 branches covered (61.84%)

Branch coverage included in aggregate %.

7705 of 10905 relevant lines covered (70.66%)

3.07 hits per line

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

95.24
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
  protected void postExtract(Path extractedDir) {
30

31
    FileAccess fileAccess = this.context.getFileAccess();
4✔
32
    if (this.context.getSystemInfo().isWindows()) {
5✔
33
      Path nodeHomePath = this.context.getSoftwarePath().resolve("node/");
6✔
34
      Path npmBinBath = nodeHomePath.resolve("node_modules/npm/bin/");
4✔
35
      String npm = "npm";
2✔
36
      String npx = "npx";
2✔
37
      String cmd = ".cmd";
2✔
38

39
      fileAccess.delete(nodeHomePath.resolve(npm));
5✔
40
      fileAccess.delete(nodeHomePath.resolve(npm + cmd));
7✔
41
      fileAccess.delete(nodeHomePath.resolve(npx));
5✔
42
      fileAccess.delete(nodeHomePath.resolve(npx + cmd));
7✔
43

44
      fileAccess.copy(npmBinBath.resolve(npm), nodeHomePath);
6✔
45
      fileAccess.copy(npmBinBath.resolve(npm + cmd), nodeHomePath);
8✔
46
      fileAccess.copy(npmBinBath.resolve(npx), nodeHomePath);
6✔
47
      fileAccess.copy(npmBinBath.resolve(npx + cmd), nodeHomePath);
8✔
48
    }
49
  }
1✔
50

51
  @Override
52
  public String getToolHelpArguments() {
53

54
    return "help";
×
55
  }
56
}
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