请求配置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
相关产品推荐
相关产品推荐

