将用@angular-builders/custom-webpack的Angular项目迁移至NX遇警告怎么办?
迁移使用
@angular-builders/custom-webpack的Angular项目到NX集成式单体仓库的解决方案 针对NX初始化时提示的@angular-builders/custom-webpack构建器不支持自动迁移的问题,有两种可行的处理方案:
方案一:手动迁移目标配置(保留原有自定义Webpack构建器)
如果希望继续使用@angular-builders/custom-webpack,可以按以下步骤手动补全迁移:
- 先完成NX初始化的剩余流程,忽略当前的构建器警告。
- 在项目根目录的
project.json文件中,手动添加build、serve、test目标的配置,参考原Angular项目angular.json中的对应配置:{ "targets": { "build": { "executor": "@angular-builders/custom-webpack:browser", "options": { "outputPath": "dist/keira3", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.app.json", "assets": ["src/favicon.ico", "src/assets"], "styles": ["src/styles.scss"], "scripts": [], "customWebpackConfig": { "path": "./webpack.config.js" } }, "configurations": { "production": { // 原生产环境配置内容 } } }, "serve": { "executor": "@angular-builders/custom-webpack:dev-server", "options": { "browserTarget": "keira3:build", "customWebpackConfig": { "path": "./webpack.config.js" } } }, "test": { "executor": "@angular-builders/custom-webpack:karma", "options": { "main": "src/test.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.spec.json", "karmaConfig": "karma.conf.js", "assets": ["src/favicon.ico", "src/assets"], "styles": ["src/styles.scss"], "scripts": [], "customWebpackConfig": { "path": "./webpack.config.js" } } } } } - 将原项目中的自定义Webpack配置文件(如
webpack.config.js)迁移到NX仓库的对应位置,确保customWebpackConfig.path指向正确路径。 - 运行
nx build、nx serve、nx test命令验证配置是否生效。
方案二:先替换构建器完成自动迁移,再重新配置自定义Webpack
如果希望利用NX的自动迁移能力,后续再恢复自定义Webpack支持,步骤如下:
- 回滚当前未完成的迁移操作:删除NX初始化生成的
nx.json、project.json等文件,恢复原项目的angular.json文件(如果已被修改)。 - 修改原Angular项目
angular.json中的构建器为NX自动迁移支持的官方版本:- 将
build目标的builder改为@angular-devkit/build-angular:browser - 将
serve目标的builder改为@angular-devkit/build-angular:dev-server - 将
test目标的builder改为@angular-devkit/build-angular:karma
- 将
- 重新运行
npx nx@latest init --integrated命令,此时自动迁移会顺利完成。 - 迁移完成后,重新安装
@angular-builders/custom-webpack依赖,将project.json中的executor改回@angular-builders/custom-webpack系列,并添加customWebpackConfig配置项,关联原自定义Webpack文件。
内容的提问来源于stack exchange,提问作者Francesco Borzi
相关产品推荐
相关产品推荐

