Как создать проект Vue.js, чтобы использовать его в wordpress

Обновление: см. Редактирование в конце

Продолжение моего предыдущего вопроса здесь: Включить компонент Vue.js в плагин Wordpress без CDN

Очень уместный ответ Окбы вызывает у меня головную боль. Как мне создать что-то с Vue.js, которое я могу использовать в wordpress?

Я работаю с Vue-cli. Я попытался создать свой проект как библиотеку, используя эту командную строку:

vue-cli-service build --target lib --name myVueLibrary ./src/main.js

А затем импортируем файлы dist/* в wordpress:

wp_enqueue_script('myPlugin', plugin_dir_url(__FILE__) . './my-plugin.js', [], '0.1', true);
wp_enqueue_script('myVueLibrary', './vue-plugin/myVueLibrary.common.js', [], '0.1.0');

где my-plugin.js выглядит так (я использую короткие коды для замены содержимого <div> тем, что там помещает мой плагин):

var elements = document.querySelectorAll('[my-plugin-atts]');

elements.forEach(function (element) {
    var atts = JSON.parse(element.getAttribute('my-plugin-atts'));
    var vm = new Vue({
        el: element,
        created: function () {
            this.atts = atts;
        },
        template: '<div class = "plugin-container">{{atts.id}}</div>'
    });
});

И я получаю следующую ошибку:

Uncaught ReferenceError: Vue is not defined

Но ! Если я заменю свой импорт vueBaoViz.common.js импортом Vue CDN, мой плагин wordpress отобразит то, что я хочу отображать.

wp_enqueue_script('myPlugin', plugin_dir_url(__FILE__) . './my-plugin.js', [], '0.1', true);
wp_enqueue_script('vue', 'https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js', [], '2.5.16');

Я предполагаю, что моя сборка Vue не в порядке, как мне создать что-то, что я могу использовать как это, и которое содержит Vue.js внутри себя?

Вы также можете попробовать использовать эту стартовую тему Wordpress Vue: github.com/EvanAgee/vuejs-wordpress-theme-starter

gtamborero 11.12.2018 22:09
Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
2
1
1 567
2

Ответы 2

1 - Вы можете использовать vue js - non spa, из cdn или с помощью webpack, посмотрите https://vuejs.org/v2/guide/#Composing-with-Components, чтобы узнать, как вы будете использовать vue js в обычных файлах js.

2- Вы можете использовать vue-cli как стандартный проект спа с wordpress rest api: https://developer.wordpress.org/rest-api/

Импорт производственного файла vue.js (загруженного прямо с их веб-сайта) в соответствии с инструкцией по установке не работает, и я не хочу использовать версию CDN. Использование API отдыха Wordpress кажется излишним для того, что я хочу делать.

Tom 11.12.2018 15:42

Итак, оказывается, я идиот, я забыл добавить plugin_dir_url(__FILE__) перед путем при загрузке локального файла. Это решило мою проблему.

Другие вопросы по теме