# ESM server builds using 3P builder 1. Add resolutions in `package.json` as the 3P builder does not yet support Angular 16. ```json "resolutions": { "@angular-devkit/build-angular": "^16.0.0-next.0" }, ``` 3. yarn add @angular-builders/custom-webpack --dev 4. Update `angular.json`. ```diff "server": { + "builder": "@angular-devkit/build-angular:server", - "builder": "@angular-builders/custom-webpack:server", "options": { + "customWebpackConfig": { + "path": "./extra-webpack.config.mjs" + }, "outputPath": "dist/test/server", ``` 3. Create `extra-webpack.config.mjs` ```js export default { output: { filename: "[name].mjs", chunkFilename: "[name].mjs", chunkFormat: "module", libraryTarget: "module", }, experiments: { outputModule: true, }, optimization: { splitChunks: { cacheGroups: { defaultVendors: false, }, }, }, }; ```