Я пытаюсь настроить простое Angular приложение с рендерингом на стороне сервера, используя Nest JS. На стороне сервера мне нужно использовать базу данных SQLite.
Я создал новый проект, используя angular -cli:
ng new playground
, после этого я добавил рендеринг на стороне сервера:
ng add @nestjs/ng-universal
затем я добавил зависимость только для библиотеки SQLite:
npm i --save sqlite3
На сервере я создал простой контроллер hello world, где просто импортируется библиотека sqlite:
server / hello / hello.controller.ts:
import { Controller } from '@nestjs/common';
import * as sqlite from 'sqlite3';
@Controller('hello')
export class HelloController {
constructor() {
console.log(sqlite);
}
}
Затем я запустил проект с помощью команды: npm run dev:ssr
, которая определена в пакете. json как: ng run playground:serve-ssr
. Через некоторое время возникла проблема:
WARNING in ./node_modules/node-pre-gyp/lib/util/nw-pre-gyp/index.html 1:0
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> <!doctype html>
| <html>
| <head>
ERROR in ./node_modules/node-pre-gyp/lib/unpublish.js
Module not found: Error: Can't resolve 'aws-sdk' in 'E:\tmp\playground\node_modules\node-pre-gyp\lib'
ERROR in ./node_modules/node-pre-gyp/lib/publish.js
Module not found: Error: Can't resolve 'aws-sdk' in 'E:\tmp\playground\node_modules\node-pre-gyp\lib'
ERROR in ./node_modules/node-pre-gyp/lib/info.js
Module not found: Error: Can't resolve 'aws-sdk' in 'E:\tmp\playground\node_modules\node-pre-gyp\lib'
NodeJS версия: v10.15.3 также протестирована с v13.12.0
ОС: Windows 10 и Linux Mint
Может кто-нибудь помочь мне, как решить эту проблему? Некоторое время я гуглил, но безуспешно. Некоторые люди советуют редактировать webpack.config.js
, но в генерируемом проекте такого файла нет. Интересно, что когда я создаю только сервер Nest JS с базой данных SQLite, проблем не возникает.