Netbeans无法在MAVEN Web应用程序上运行package.json

sva*_*rog 5 netbeans maven npm netbeans-8

使用Netbeans 8.2,我创建了一个新的MAVEN Web应用程序。我已经在package.json文件Web Pages夹中放置了一个工作文件,所以它的路径是

C:\ Users \ xxx \ Documents \ NetBeansProjects \ MyApp \ src \ main \ webapp \ package.json

我左键单击package.json文件,然后单击npm install选项。然后,我被这些错误/警告所招呼

"C:\Program Files\nodejs\npm.cmd" "install"
npm WARN ENOENT ENOENT: no such file or directory, open 'C:\Users\Nick\Documents\NetBeansProjects\MyApp\package.json'
npm WARN EPACKAGEJSON C:\Users\xxx\Documents\NetBeansProjects\MyApp No description
npm WARN EPACKAGEJSON C:\Users\xxx\Documents\NetBeansProjects\MyApp No repository field.
npm WARN EPACKAGEJSON C:\Users\xxx\Documents\NetBeansProjects\MyApp No README data
npm WARN EPACKAGEJSON C:\Users\xxx\Documents\NetBeansProjects\MyApp No license field.
Done.
Run Code Online (Sandbox Code Playgroud)

我注意到Netbeans试图在错误的位置查找package.json

C:\ Users \ Nick \ Documents \ NetBeansProjects \ MyApp \ package.json'

而且我似乎无法弄清楚如何告诉IDE在哪里寻找它。

当我去

项目属性> JavaScript库> npm

我有一个空洞的看法

找不到package.json

我的问题是,如何设置netbeans以查看“ package.json”并运行它?当我尝试在HTML5项目中使用它时,它运行良好,但是我需要Java Web应用程序项目的npm支持。

sva*_*rog 0

我最终找到了内置 IDE 机制之外的解决方案。我使用frontend-maven-plugin为我的项目设置本地 npm 存储库。

我没有使用npm installIDE 提供的选项,而是使用 Maven 定义目标,并使用nbactions.xml.

  1. 要安装插件,请编辑pom.xml文件(来自此处的片段),添加插件描述符以及将在存储库中下载和安装 npm 的执行:

     <plugins>
         <plugin>
             <groupId>com.github.eirslett</groupId>
             <artifactId>frontend-maven-plugin</artifactId>
             <version>1.8.0</version>
             <executions>
                 <!-- Installs node + npm in your repo -->
                 <execution>
                     <id>install node and npm</id>
                     <goals>
                         <goal>install-node-and-npm</goal>
                     </goals>
                     <phase>generate-resources</phase>
                 </execution>
                 ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我已将此代码附加到上面的代码中。这是一个正在运行的执行npm install此处找到的片段):

         ....
         <execution>
             <id>npm install</id>
             <goals>
                 <goal>npm</goal>
             </goals>
    
             <!-- optional: default phase is "generate-resources" -->
             <phase>generate-resources</phase>
    
             <configuration>
                 <!-- optional: The default argument is actually
                 "install", so unless you need to run some other npm command,
                 you can remove this whole <configuration> section.
                 -->
                 <arguments>install</arguments>
             </configuration>
         </execution>
     </plugin>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建一个文件(在POMpackage.json所在的同一目录中)并开始将内容放入其中(示例

  4. npm install我在里面添加了对目标的引用nbactions.xml。我给它起了一个显示名称npm-install

     </actions>
         ...
         <action>
             <actionName>CUSTOM-npm-install</actionName>
             <displayName>npm-install</displayName>
             <goals>
                 <goal>npm</goal>
             </goals>
         </action>
     </actions>
    
    Run Code Online (Sandbox Code Playgroud)
  5. 然后,右键单击项目(从项目视图)-> 运行 Maven -> npm-install

在此输入图像描述

然后,该插件将运行并package.json在一个单独的目录中安装 Node.js 运行时,该目录不会与您的项目捆绑在一起,您可以在那里编辑它并重新运行目标。