Удалите eval () для производственного кода через веб-пакет из-за проблем CSP - PullRequest
2 голосов
/ 23 января 2020

Я пытаюсь придерживаться директив CSP в комплекте производственного кода . У нас есть строгая ContentSecurityPolicy, которая не позволяет eval() и его родственникам, таким как setTimeout(String), setInterval(String) и new Function(String). Поэтому я пытаюсь удалить такие утверждения через webpack.config. js.

Я использую webpack 4.28.0 , и после просмотра многочисленных руководств в Интернете я попробовал следующее в webpack.config. js:

mode: 'production',
node: {
  global: false,
  fs: 'empty', // irrelevant for this example I think
}

// rest of code ... 

plugins: [
      new webpack.DefinePlugin({ // This was put in place because before I got window is undefined errors
        global: 'window'
      }),

// rest of code ... 

Также свойство devtool оставлено неустановленным (согласно некоторым руководствам I найдено в Интернете), хотя я не думаю, что это имеет значение.

В настоящее время я получаю жалобы на new Function(...) (см. ниже):

enter image description here

Вот также ошибка CSP:

enter image description here

Я не самый опытный в веб-пакете, поэтому в Я хотел бы спросить вас, есть ли у вас надежды на то, что все остальное будет возможно сделать через веб-пакет? Вы сталкивались с такой вещью в прошлом и можете поделиться некоторыми намеками? Может быть, Вавилон что-то делает?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...