@LoranDeMarcus

Как глобально объявить, чтобы избежать ошибки «Server Error ReferenceError: window is not defined» в next.js?

Добрый день, столкнулся с ошибки "Server Error ReferenceError: window is not defined" при использовании библиотеки crypto-pro в Next.js
Библиотека crypto-pro импортируется из node_modules

import  'crypto-pro'
const getUserCertificates = async (): Promise<Certificate[]> => {
  let oStore
  const certificates: Certificate[] = []

  try {
    oStore = await window.cadesplugin.CreateObjectAsync('CAdESCOM.Store')
  } catch (err) {
    console.error(err)
  }
}
const certs = await getUserCertificates()
console.log(certs)


в файле global.d.ts объявил глобально cadesplugin
export {}
declare global {
  interface Window extends Window{
    cadesplugin: any
  }
}


и в tsconfig добавил файл global.d.ts
{
  ...,
  "include": [
    "next-env.d.ts",
    "global.d.ts",
    "**/*.ts",
    "**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ],
}


Как можно решить данную проблему?
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 1
@wonderingpeanut
простая проверка на наличие window исправит ошибку
if (typeof window !== 'undefined') {
  // кодище
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы