Я использую Require JS для загрузки моих пользовательских Javascript модулей в расширение внутреннего модуля TYPO3.
I go по документам: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/JavaScript/RequireJS/Index.html
Я не смог заставить VueJS работать без какой-либо хакерской атаки:)
Моя первая попытка:
define("vue", [], function () {
'use strict';
/*!
* Vue.js v2.6.11
* (c) 2014-2019 Evan You
* Released under the MIT License.
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Vue=t()}(this,function(){"use strict";var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}func ........ shortened;
});
Такой тест может вызвать ошибку Vue is not defined
var app = new Vue({
el: '#headline',
data: {
message: 'Hello Vue.js!'
}
});
Я посмотрел, как загружается VueJS, и попытался изменить условия загрузки. Я понял, мне нужно было заставить скрипт выполнить часть (e=e||self).Vue=t()
. Я не хотел менять исходный код VueJS, поэтому я делаю это сейчас так:
Мне пришлось сбросить define.amd
, затем загрузить VueJS, а затем вернуть его к его старому значению, как это :
define("vue", [], function () {
'use strict';
const tempAmdHolder = define.amd;
define.amd = false;
/*!
* Vue.js v2.6.11
* (c) 2014-2019 Evan You
* Released under the MIT License.
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Vue=t()}(this,function(){"use strict";var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}func ........ shortened;
define.amd = tempAmdHolder;
});
Теперь я могу запустить свой тестовый код:
Есть идеи, что может быть не так или как избежать (неприятного) обходного пути?