Что такое компоненты a-la-carte? Должен ли я использовать его?
при запуске нового проекта с помощью vue-cli он задает несколько вопросов для настройки настройки. Как правило, название проекта, описание, использовать ли eslint для линтинга,karma и mocha для тестирования и т. д. На этот раз он спросил меня
? Use a-la-carte components?
Я искал его в документах vue-cli, но ничего не нашел. Так может ли кто-нибудь сказать мне, что такое "компоненты a-la-carte" и если я должен использовать его?
2 ответов
À la carte является английский язык кредит фраза значение " according в меню."Это относится к" еде, которую можно заказать как отдельную предметы, а не часть набора еды."
поэтому, если вы используете компоненты a-la-carte, это означает, что вы включаете только компоненты, которые вам нужно (хотите) использовать, вместо того, чтобы получать их все
Vuetify позволяет легко импортировать только что вам нужно, резко снижая свой след.
import {
Vuetify,
VApp,
VNavigationDrawer,
VFooter,
VList,
VBtn
} from 'vuetify'
Vue.use(Vuetify, {
components: {
VApp,
VNavigationDrawer,
VFooter,
VList,
VBtn
}
})
прежде всего, вы не нашли эту опцию в документах, потому что это на самом деле плагин vuetify. Когда компоненты "a-la-carte" включены, файл /plugins/vuetify.js
должен содержать:
import Vue from 'vue'
import {
Vuetify,
VApp,
//other vuetify components
} from 'vuetify'
Vue.use(Vuetify, {
components: {
VApp,
//other vuetify components
}
})
и ваш Бабель.конфиг.файл js должен быть изменен, чтобы предотвратить полный импорт vuetify с плагином" transform-imports".
во-вторых, до vuetify v1.3.0-Альфа.0 ," a la carte" было полезно, если вы хотели минимизировать пакет поставщика webpack, но довольно утомительно выборочно импортировать компоненты vuetify, особенно во время разработки. Кроме того, Webpack сильно эволюционировал с момента введения "компонентов a la carte".
по этим причинам, начиная с vuetify 1.3.0-alpha.0, команда разработчиков работает над тем, чтобы полностью устранить необходимость в компонентах a la carte с помощью Webpack 4 дерево трясется особенности (он же мертвый код ликвидации) через vuetify-loader. Эти особенности, как ожидается, для добавления в официальный плагин vuetify, чтобы получить автоматические "компоненты a la carte".
Итак, чтобы ответить на ваш второй вопрос (если вы должны использовать a-la-carte), ответ нет, больше не буду. Вот как вы можете настроить свой проект vue-cli 3 самостоятельно, чтобы использовать эту функцию:
- установите Vuetify-loader как зависимость от dev:
npm install -D vuetify-loader
- импорт vuetify из
'vuetify/lib'
вместо'vuetify'
в вашем vuetify.Яш файл.
код:
import Vue from 'vue'
import Vuetify from 'vuetify/lib'
Vue.use(Vuetify)
- Регистрация Vuetify-loader в качестве плагина webpack в вашем
vue.config.js
file (если он не существует, создайте файл в корне вашего проекта).
код:
const VuetifyLoaderPlugin = require('vuetify-loader/lib/plugin')
module.exports = {
configureWebpack: {
plugins: [
new VuetifyLoaderPlugin(),
]
}
// ...other vue-cli plugin options...
}
если вы уже использовали a-la-carte, обязательно удалите "transform-imports" из списка ваших плагинов babel (обычно находится в babel.конфиг.в JS)
помните, что встряхивание дерева настроено на работу только в производственном режиме, поэтому, если вы используете флаг
--watch
или--mode development
С , вы shoudln не ожидайте, что ваш размер пакета должна быть уменьшена
надеюсь, это поможет