I’m using Webpack 5 and Angular 11 when I execute the command ng build –prod && ng run test-app:server:production In the console it gives me an error message: Error: ./node_modules/msnodesqlv8/build/Release/sqlserverv8.node 1:2 Module parse failed: Unexpected character ‘�’ (1:2) You may need an appropriate loader to handle this file type, currently no loaders are configured to […]
- Tags '/{routes:.+}', 'dist/test-app/browser'); const indexHtml = existsSync(join(distFolder, 'html'); server.set('views', 'index.original.html')) ? 'index.original.html' : 'index'; server.engine('html', 'keywords', 'root', 'src/assets'), "!**/dist/**", "@angular/cli": "~11.0.5", "@angular/common": "~11.0.5", "@angular/compiler-cli": "~11.0.5", "@angular/compiler": "~11.0.5", "@angular/core": "~11.0.5", "@angular/forms": "~11.0.5", "@angular/platform-browser-dynamic": "~11.0.5", "@angular/platform-browser": "~11.0.5", "@angular/platform-server": "^11.0.7", "@angular/router": "~11.0.5", "@nguniversal/builders": "^11.0.1", "@nguniversal/express-engine": "^11.0.1", "@schematics/angular:application": { "strict": true } }, "@types/express": "^4.17.9", "@types/jasmine": "~3.6.0", "@types/node": "12.11.1", "angularCompilerOptions": { "entryModule": "./src/app/app.server.module#AppServerModule" } } webpack.server.config.js const path = re, "angularCompilerOptions": { "strictInjectionParameters": true, "aot": true, "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "assets": [ "src/favicon.ico", "author": "", "budgets": [ { "type": "initial", "build:ssr": "ng build --prod && ng run test-app:server:production", "build": "ng build", "buildOptimizer": true, "cli": { "analytics": "e9a52f4c-af8d-4030-8d24-ba3f4b17ec39" } } server.ts: import 'zone.js/dist/zone-node'; import { ngExpressEngine, "codelyzer": "^6.0.0", "compilerOptions": { "baseUrl": "./", "compilerOptions": { "outDir": "./out-tsc/app", "configurations": { "production": { "browserTarget": "test-app:build:production" } }, "configurations": { "production": { "devServerTarget": "test-app:serve:production" } }, "configurations": { "production": { "fileReplacements": [ { "replace": "src/envir, "configurations": { "production": { "outputHashing": "media", "configurations": { "production": {} } } } } }, "declaration": false, "defaultProject": "test-app", "dependencies": { "@angular/animations": "~11.0.5", "description": "This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.0.5.", "dev:ssr": "ng run test-app:serve-ssr", "devDependencies": { "@angular-devkit/build-angular": "~0.1100.5", "devServerTarget": "test-app:serve" }, "Dom", "downlevelIteration": true, "e2e": "ng e2e" }, "e2e": { "builder": "@angular-devkit/build-angular:protractor", "e2e/tsconfig.json" ], "experimentalDecorators": true, "express": "^4.17.1", "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "extractLicenses": true, "fileReplacements": [ { "replace": "src/environments/environment.ts", "files": [ "src/main.server.ts", "files": [ "src/main.ts", "forceConsistentCasingInFileNames": true, "importHelpers": true, "include": [ "src/**/*.d.ts" ] } tsconfig.json { "compileOnSave": false, "index": "src/index.html", "jasmine-core": "~3.6.0", "jasmine-spec-reporter": "~5.0.0", "karma-chrome-launcher": "~3.1.0", "karma-coverage": "~2.0.3", "karma-jasmine-html-reporter": "^1.5.0", "karma-jasmine": "~4.0.0", "karma": "~5.1.0", "karmaConfig": "karma.conf.js", "lib": [ "es2018", "license": "ISC" } angular.json: { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "lint": "ng lint", "lint": { "builder": "@angular-devkit/build-angular:tslint", "main": "karma.conf.js", "main": "server.ts", "main": "src/main.ts", "maximumError": "10kb" } ] } } }, "maximumError": "5mb" }] } } }, "maximumWarning": "2mb", "maximumWarning": "6kb", "module": "commonjs", "module": "es2020", "moduleResolution": "node", "msnodesqlv8": "^2.0.8", "mssql": "^6.3.1", "namedChunks": false, "newProjectRoot": "projects", "noFallthroughCasesInSwitch": true, "noImplicitReturns": true, "optimization": true, "options": { "browserTarget": "test-app:build:production", "options": { "browserTarget": "test-app:build" }, "options": { "main": "src/test.ts", "options": { "outputPath": "dist/test-app/browser", "options": { "outputPath": "dist/test-app/server", "options": { "protractorConfig": "e2e/protractor.conf.js", "options": { "tsConfig": [ "tsconfig.app.json", "outDir": "./dist/out-tsc", "outputHashing": "all", "polyfills": "src/polyfills.ts", "prefix": "app", "prerender": "ng run test-app:prerender", "prerender": { "builder": "@nguniversal/builders:prerender", "private": true, "projects": { "test-app": { "projectType": "application", "protractor": "7.0.0", "resolution": { "webpack": "^5.0.0" }, "rxjs": "~6.6.0", "schematics": { "@schematics/angular:component": { "style": "scss" } }, "scripts": { "ng": "ng", "serve-ssr": { "builder": "@nguniversal/builders:ssr-dev-server", "serve:ssr": "node dist/test-app/server/main.js", "serve": { "builder": "@angular-devkit/build-angular:dev-server", "server.ts" ], "server": { "builder": "@angular-devkit/build-angular:server", "serverTarget": "test-app:server:production" } } }, "serverTarget": "test-app:server" }, "sourceMap": false, "sourceMap": true, "sourceRoot": "src", "src/polyfills.ts" ], "start-webpack:server": "webpack --config webpack.server.config.js " }, "start": "ng serve", "strict": true, "strictInputAccessModifiers": true, "strictTemplates": true } } tsconfig.server.json { "extends": "./tsconfig.app.json", "styles": [ "src/styles.scss" ], "target": "es2015", "target": "es2020", "test": "ng test", "test": { "builder": "@angular-devkit/build-angular:karma", "ts-loader": "^8.0.14", "ts-node": "^8.3.0", "tsconfig.server.json" ], "tsconfig.spec.json", "tsConfig": "tsconfig.app.json", "tsConfig": "tsconfig.server.json" }, "tsConfig": "tsconfig.spec.json", "tslib": "2.0.0", "tslint": "~6.1.0", "types": ["node"] }, "typescript": "^4.0.2" }, "vendorChunk": false, "version": "0.0.0", "version": "1" }, "webpack-cli": "^4.3.1" }, "with": "src/environments/environment.prod.ts" }], "zone.js": "~0.10.2" }, () => { console.log(`Node Express server listening on http://localhost:${port}`); }); } // Webpack will replace 'require' with '__webpa, (err: TypeError, (req, { "type": "anyComponentStyle", { maxAge: '1y' })); server.get('*', { test: /\.node$/, })); server.set('view engine', // this makes sure we include node_modules and other 3rd party libraries externals: [/node_modules/], #TS, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders and directory is not being built: dist, database : "xxx", distFolder); server.get('*.*', driver: "msnodesqlv8", exclude: /node_modules/, express.static(distFolder, filename: '[name].js' }, I'm using Webpack 5 and Angular 11 when I execute the command ng build --prod && ng run test-app:server:production In the console it gives m, loader: "ts-loader" }, mode: 'none', module: { rules: [ { test: /\.ts$/, next: NextFunction) => { var sql = require("mssql/msnodesqlv8"); let config = { server: 'SQLDXXX\\XX, NextFunction, ngExpressEngine({ bootstrap: AppServerModule, options: { trustedConnection: true } }; let connect = new sql.ConnectionPool(conf, output: { path: path.join(__dirname, providers: [ { provide: APP_BASE_HREF, recordset: any) => { if (err) { console.error(" Error: " + err );, res: Response, res) => { res.render(indexHtml, resolve: { extensions: ['.js', response, response } from 'express'; export class TestRoute { contractorRoute(app: any): void { app.route('/api/get-test').get((req: Reque, scripts), target: 'node', use: "node-loader" }, useValue: req.baseUrl }] }); }); return server; } function run(): void { const port = process.env.PORT || 4000; const server = app()