Невозможно запустить локальный хост веб-сайта Angular 7

Я новичок в Angular и работаю над старым проектом компании. Он был сделан с помощью Angular 7, и теперь мне нужно перенести его на 18. Проблема в том, что в нынешнем виде он даже не запускается. Я запускал npm install и npm start, но получаю эти ошибки и даже не знаю, с чего начать гуглить. Надеялся, что смогу получить некоторые рекомендации о том, как подойти к этому вопросу.

//npm install
npm WARN old lockfile 
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated [email protected]: We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular

changed 68 packages, and audited 1123 packages in 26s

140 vulnerabilities (2 low, 46 moderate, 70 high, 22 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> [email protected] start
> ng serve

(node:26680) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
 10% building 4/5 modules 1 active ...t\index.js?http://0.0.0.0:0/sockjs-nodenode:internal/crypto/hash:69
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\webpack\lib\util\createHash.js:90:53)
    at NormalModule._initBuildHash (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\webpack\lib\NormalModule.js:401:16)
    at C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\webpack\lib\NormalModule.js:433:10
    at C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\webpack\lib\NormalModule.js:308:13
    at C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\loader-runner\lib\LoaderRunner.js:367:11
    at C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\loader-runner\lib\LoaderRunner.js:203:19
    at VirtualFileSystemDecorator.readFile (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\@ngtools\webpack\src\virtual_file_system_decorator.js:43:13)
    at processResource (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\loader-runner\lib\LoaderRunner.js:202:11)
    at iteratePitchingLoaders (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\loader-runner\lib\LoaderRunner.js:158:10)
    at runLoaders (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\loader-runner\lib\LoaderRunner.js:365:2)
    at NormalModule.doBuild (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\webpack\lib\NormalModule.js:280:3)
    at NormalModule.build (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\webpack\lib\NormalModule.js:427:15)
    at Compilation.buildModule (C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\webpack\lib\Compilation.js:635:10)
    at C:\Users\USER\Documents\Angular\GolCentz\GolCentz Clone\node_modules\webpack\lib\Compilation.js:884:14 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.19.1
{
  "name": "gol-centz-app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^7.2.15",
    "@angular/common": "~7.2.0",
    "@angular/compiler": "~7.2.0",
    "@angular/core": "~7.2.0",
    "@angular/forms": "~7.2.0",
    "@angular/platform-browser": "~7.2.0",
    "@angular/platform-browser-dynamic": "~7.2.0",
    "@angular/router": "~7.2.0",
    "admin-lte": "^3.0.0-alpha.2",
    "bootstrap": "^4.3.1",
    "core-js": "^2.5.4",
    "devextreme": "19.1.3",
    "devextreme-angular": "^19.1.3",
    "devextreme-intl": "^19.1.5",
    "jquery": "^3.4.1",
    "jszip": "^3.2.1",
    "ngx-toastr": "^10.0.4",
    "rxjs": "~6.3.3",
    "tslib": "^1.9.0",
    "zone.js": "~0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.13.0",
    "@angular/cli": "~7.3.8",
    "@angular/compiler-cli": "~7.2.0",
    "@angular/language-service": "~7.2.0",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.2.2"
  }
}

Сначала я попробовал запустить npm Audit fix --force, как он предлагал, но потом это просто привело к большему количеству ошибок, которых я даже не смог найти в Интернете, и мне пришлось снова клонировать исходный код, чтобы все переделать, потому что я этого не сделал. Я не использую контроль версий в первый раз.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Удалите файл json.lock и каталог node_modules и повторите попытку.

Как дополнение: от 7 до 18 это долгий путь, если проект простой, перепишите его в 18 новый. Потому что у вас много нового и передового опыта.

Ответ принят как подходящий

ошибка, которую вы получаете, не имеет ничего общего с вашими зависимостями, а связана с неправильной версией узла. вы можете найти хорошее объяснение здесь: https://stackoverflow.com/a/69699772/2126544

angular v7 — довольно старая версия, поэтому, чтобы запустить ее, вам следует сначала понизить версию узла с 18 до 8 или 10 (https://v7.angular.io/guide/quickstart#nodejs ), потому что там вероятно, используются API, которые больше не поддерживаются в версии 18. если вы еще его не используете, я бы рекомендовал использовать менеджер версий узлов ( https://github.com/nvm-sh/nvm или https://github.com/coreybutler/nvm-windows). благодаря этому вы можете легко переключаться между версиями.

после этого вы сможете запустить свое приложение, а затем обновить версию за версией. вам также придется менять версии своих узлов на этом этапе, пока вы не достигнете последней версии.

Другие вопросы по теме