为什么我在角度通用的 ngx_cookieconsent_NgcCookieConsentService.init 中无法读取未定义的属性“初始化”?

Nil*_*ton 4 server-side-rendering angular-universal angular cookieconsent

CookieConsent 和库版本?

\n
- cookieconsent version: 3.1.1\n- ngx-cookieconsent version: 2.2.3\n- Angular CLI: 10.0.3\n- Angular SSR (universal)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我正在运行以下命令:

\n
npm run build:ssr && npm run serve:ssr\n
Run Code Online (Sandbox Code Playgroud)\n

在哪里:

\n
"serve:ssr": "node dist/compy/server/main.js",\n\n"build:ssr": "ng build --prod && ng run compy:server:production",\n
Run Code Online (Sandbox Code Playgroud)\n

失败给出的日志

\n\n
Node Express server listening on http://localhost:4000\n\nERROR TypeError: Cannot read property 'initialise' of undefined\n    at NgcCookieConsentService.init (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:3482889)\n    at new NgcCookieConsentService (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:3482119)\n    at Object.NgcCookieConsentService_Factory [as factory] (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:3484065)\n    at R3Injector.hydrate (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:2802301)\n    at R3Injector.get (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:2799033)\n    at NgModuleRef$1.get (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:2977443)\n    at Object.get (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:2946537)\n    at getOrCreateInjectable (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:2713691)\n    at Module.\xc9\xb5\xc9\xb5directiveInject (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:2832947)\n    at NodeInjectorFactory.AppComponent_Factory [as factory] (C:\\Coding\\compyFront\\dist\\compy\\server\\main.js:1:1694986)\n
Run Code Online (Sandbox Code Playgroud)\n

提及任何其他可能有用的细节

\n\n

它在常规应用程序中工作得很好,但在通用角度应用程序中失败,所以我认为这主要是由于在服务器端模式下运行时尝试打开窗口或对话框。或者另一个,我可能需要以某种方式将其添加到 angular.json 配置文件之外的其他位置。

\n

请告诉我您需要的任何文件,我只是无法发布整个项目,因为它是私人的,但我可以毫无问题地交付单个文件。

\n

小智 9

对我来说,问题是通过添加cookieconsent.min.csscookieconsent.min.js来解决的angular.json

"styles": [
            "./node_modules/cookieconsent/build/cookieconsent.min.css"
          ],
          "scripts": [
            "./node_modules/cookieconsent/build/cookieconsent.min.js"
          ]
Run Code Online (Sandbox Code Playgroud)