You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求配置frontend-maven-plugin将node_modules安装至package.json所在目录而非/node子目录

请求配置frontend-maven-plugin将node_modules安装至package.json所在目录而非/node子目录

嘿,我完全get到你的需求了!你希望frontend-maven-plugin把node_modules直接装在package.json所在的目录里,而不是默认的workingDirectory下的/node子目录,这样手动执行npm install时,依赖安装的位置能和插件操作的保持一致,对吧?

先说说当前的运行逻辑:

在Maven构建的generate-resource阶段,frontend-maven-plugin会把所有依赖安装到你在Maven配置里指定的workingDirectory下自动创建的/node目录中,你的现有配置大概是这样的:

<configuration>
    <workingDirectory>{path}</workingDirectory>
</configuration>

要实现你想要的效果其实很简单,只需要调整插件的两个关键配置参数:

  • 把workingDirectory设置为package.json所在的目录,确保插件在正确的路径下执行npm命令
  • 指定installDirectory参数为同一个目录,让node/npm也安装在这里(避免插件默认创建/node子目录)

给你一个具体的配置示例,假设你的package.json放在项目根目录的src/main/frontend文件夹下:

<plugin>
    <groupId>com.github.eirslett</groupId>
    <artifactId>frontend-maven-plugin</artifactId>
    <version>请替换成你正在使用的插件版本</version>
    <executions>
        <!-- 安装node和npm的步骤 -->
        <execution>
            <id>install-node-npm</id>
            <goals>
                <goal>install-node-and-npm</goal>
            </goals>
            <configuration>
                <!-- 让node/npm安装到package.json所在目录 -->
                <installDirectory>${project.basedir}/src/main/frontend</installDirectory>
                <!-- 指定工作目录为package.json所在路径 -->
                <workingDirectory>${project.basedir}/src/main/frontend</workingDirectory>
                <nodeVersion>请替换成你需要的Node.js版本</nodeVersion>
                <npmVersion>请替换成匹配的npm版本</npmVersion>
            </configuration>
        </execution>
        <!-- 执行npm install的步骤 -->
        <execution>
            <id>run-npm-install</id>
            <goals>
                <goal>npm</goal>
            </goals>
            <configuration>
                <workingDirectory>${project.basedir}/src/main/frontend</workingDirectory>
                <arguments>install</arguments>
            </configuration>
        </execution>
    </executions>
</plugin>

如果你的package.json就在项目根目录下,那更简单,直接把installDirectory和workingDirectory都设为${project.basedir}就行。

这样配置完成后,插件执行npm install时就会直接在package.json所在目录生成node_modules,和你手动执行npm install的结果完全一致,再也不用纠结路径不一致的问题啦!

备注:内容来源于stack exchange,提问作者Zdrzalik Przemyslaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 09:58:02