Используйте закрывающий компилятор с скомпилированными шаблонами vue.js - PullRequest
0 голосов
/ 23 марта 2019

Можно ли использовать компилятор Google Closure с скомпилированным шаблоном Vue.js?

Виноват в том, что скомпилированный шаблон Vue использует «with», как в:

with(this){/** render function here **/}

... и компилятору замыкания это не нравится, и поэтому он жалуется на:

The with statement cannot be used in strict mode.

Однако я не уверен, действительно ли это из-за строгого режима, потому что в исходном коде (упакованном с веб-пакетом) нет функции "use strict"; в функции-нарушителе:

/***/ "./my/compiled/vue/template":
/***/ (function(module, exports) {
    module.exports = {
      render: function(){with(this){ /** render function here **/ }},
      staticRenderFns: []
    };
/***/ })

Теперь вопрос в том, есть ли способ сделать этот компилятор в компиляторе замыкания? Подумайте, что самым простым способом было бы сказать компилятору пропустить этот код, ничего не делая с ним (не минимизированный код работает нормально, поэтому он кажется правильным), но, похоже, такой опции нет.

Есть еще идеи?

1 Ответ

0 голосов
/ 25 марта 2019

ОК, думаю, теперь я знаю, как решить эту проблему. Оказывается, действительно, скомпилированные шаблоны .vue, похоже, имеют разные результаты в зависимости от того, как вы его построили. Так как мне просто нужно было скомпилировать шаблоны - но без полноразмерных однофайловых компонентов - я использовал более простой vue-template-compiler-loader, который использует официальный компилятор и выдает проблемный вывод, который я описал. Теперь я попытался построить с более сложным vue-loader (который больше подходит для отдельных файловых компонентов), и кажется, что он также работает с файлами, которые являются «только шаблонами». И кажется, что вывод этого загрузчика отличается, так как созданные функции рендеринга не содержат with(this)!

Этот код теперь без проблем скомпилирован в компиляторе замыкания, и первый тестовый запуск в IE10 (моя «самая низкая цель») показывает, что сборка сейчас в порядке!

Спасибо @ tony19 за указание в правильном направлении!

...