Angular 17构建dist目录配置调整:兼容旧版结构咨询
解决Angular 17构建生成server/browser目录的问题
Angular 17默认启用了SSR(服务器端渲染)/SSG(静态站点生成)模式,所以构建产物会拆分到server和browser两个目录。要生成和旧版本一致的单目录浏览器端产物,可通过以下两种方式调整:
方式一:修改angular.json配置文件
找到项目根目录下的angular.json,定位到projects -> [你的项目名] -> architect -> build节点,按需调整配置:
切换到传统浏览器构建器
将原有的@angular-devkit/build-angular:application构建器替换为旧版的@angular-devkit/build-angular:browser,并移除所有SSR/SSG相关配置:"build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "dist/your-project-name", "index": "src/index.html", "main": "src/main.ts", "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", "assets": ["src/favicon.ico", "src/assets"], "styles": ["src/styles.css"], "scripts": [] }, "configurations": { "production": { "budgets": [ { "type": "initial", "maximumWarning": "500kb", "maximumError": "1mb" } ], "outputHashing": "all" } } }保留application构建器并禁用SSR
若不想切换构建器,只需删除配置中的server、prerender、ssr相关节点即可:"build": { "builder": "@angular-devkit/build-angular:application", "options": { "outputPath": "dist/your-project-name", "index": "src/index.html", "browser": "src/main.ts" // 移除server、prerender、ssr配置块 } }
方式二:使用构建命令临时禁用SSR
无需修改配置文件,直接在执行构建时添加--ssr false参数:
ng build --ssr false
执行后,构建产物会直接生成在dist/your-project-name目录下,不再拆分server和browser子目录,结构与旧版本Angular一致。
调整完成后,你就能直接从dist目录中获取嵌入其他应用所需的脚本、样式和资源文件。
内容的提问来源于stack exchange,提问作者Usha Deva
相关产品推荐
相关产品推荐

