ОШИБКА в prerender.ts (7,62): ошибка TS2307: не удается найти модуль './dist-prerender/main.bundle' - PullRequest
1 голос
/ 12 июня 2019

Во время компиляции углового кода для предварительного рендеринга ниже ошибка приходит

ОШИБКА в prerender.ts (7,62): ошибка TS2307: не удается найти модуль './dist-prerender/main.bundle'

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! XXXX@2.0.0 build: `ng build && ng build --project prerender --output-hashing=none`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the XXXXX@2.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-06-12T07_43_21_717Z-debug.log

Возможно, мое приложение не может сгенерировать файл main.bundle

Для предварительного рендеринга я добавил код в angular.json

angular.json

"prerender" : {

        "root": "",
        "sourceRoot": "src",
        "projectType": "application",
        "prefix": "app",
        "schematics": {},
        "architect": {
                "build": {
                        "builder": "@angular-devkit/build-angular:server",
                "options": {
                        "outputPath": "dist-prerender",
                        "main": "main.prerender.ts",
                        "tsConfig": "tsconfig.prerender.json"
                },
                        "configurations": {
                        "production": {
                                "fileReplacements": [
                                        {
                                         "replace": "src/environments/environment.ts",
                                         "with": "src/environments/environment.prod.ts"
                                        }
                                ],
                                "optimization": true,
                                "outputHashing": "all",
                                "sourceMap": false,
                                "extractCss": true,
                                "namedChunks": false,
                                "aot": true,
                                "extractLicenses": true,
                                "vendorChunk": false,
                                "buildOptimizer": true
                        }
                }}
                }`

tsconfig.prerender.json

  {
  "extends": "./tsconfig.app.json",
  "compilerOptions": {
    "outDir": "../out-tsc/prerender",
    /* node only understands commonjs for now*/
    "module": "commonjs"
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ],
  "angularCompilerOptions": {
    "entryModule": "app/app.prerender.module#AppPrerenderModule"
  }
}

1 Ответ

0 голосов
/ 19 июня 2019

В то время как команда ng build --project prerender --output-hashing=none была выполнена, webpack.server.config.js и prerender.ts эти файлы также были выполнены, что выдало ошибку для меня. Чтобы избавиться от этой ошибки, я просто сначала выполнил ng build --project prerender --output-hashing=none эту команду, а затем добавил файл prerender.ts после компиляции этой команды.

...