سوال بپرسید
1

خطای در اجرا فایل server.js مربوطه به SSR

سوال بپرسید

با سلام

بعد از  build:ssr  فایل server.js با این خطا مواجه شدم لطفا راهنمایی فرمائید.
 
F:\Com77\FrontEND\dist\server.js:209217
})(window, document, 'Hammer');
   ^ReferenceError: window is not defined
    at Object.<anonymous> (F:\Com77\FrontEND\dist\server.js:209217:4)


    at __webpack_require__ (F:\Com77\FrontEND\dist\server.js:20:30)
    at Object.hammerjs (F:\Com77\FrontEND\dist\server.js:154393:18)
    at __webpack_require__ (F:\Com77\FrontEND\dist\server.js:132626:30)
    at Module../node_modules/ngx-carousel/src/ngx-carousel/ngx-carousel.component.js (F:\Com77\FrontEND\dist\server.js:138664:66)
    at __webpack_require__ (F:\Com77\FrontEND\dist\server.js:132626:30)
    at Module../node_modules/ngx-carousel/src/ngx-carousel/ngx-carousel.component.ngfactory.js (F:\Com77\FrontEND\dist\server.js:139253:81)
    at __webpack_require__ (F:\Com77\FrontEND\dist\server.js:132626:30)
    at Module../src/app/landingPage/main/courses/courses.component.ngfactory.js (F:\Com77\FrontEND\dist\server.js:153681:134)
    at __webpack_require__ (F:\Com77\FrontEND\dist\server.js:132626:30)

 

 

برچسب ها:
گزارش سوال
پرسیده شده در
آمار بازدید: 133

1 پاسخ

0

سلام، این خطا به دلیل عدم درک SSR‌ از متغییرهای جی کوئری و جاوا اسکریپت هست. برای حل این مشکل باید در فایل server.ts این متغییرها را در بالای صفحه به صورت زیر تعریف کنید:

const path = require('path');
const template = fs.readFileSync(path.join(__dirname, '.', 'dist','index.html')).toString();
const win = domino.createWindow(template);
global['window'] = win;
global['document'] = win.document;

دقت داشته باشید که در این کدها، باید به مسیر Index.html تولید شده در فایل dist اشاره کنید.

امیدوارم مشکلتان حل شده باشد.