andreichirkov
@andreichirkov
Frontend разработчикк

Как добавить ES 2020 во Vue 2?

Как добавить новый babel preset во vue 2?

Как не спрашивал у гугла именно этот вопрос он не может понять.
Хочу пользоваться новыми фишками ES, особенно оператором "?", при погружении вглубь объектов.
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 2
Aetae
@Aetae Куратор тега Vue.js
Тлен
Набросок чуть менее хакерского способа, чем предложенный выше:
vue.config.js

const { transformSync } = require("@babel/core");

const fs = require('fs');

const babelTransform = {
  transformCode: (_, code) => transformSync(`(function(){${code}}())`, {
    filename: "",
    ast: false,
    retainLines: true,
    babelrc: true,
    compact: true,
    minified: true
  }).code.replace(/;$/,'')
};

const addBabelTransform = (options) => {
  const { compilerOptions } = options;
  const modules = compilerOptions && compilerOptions.modules ? compilerOptions.modules.concat(babelTransform) : [babelTransform];
  return {
    ...options,
    compilerOptions: {
      ...compilerOptions,
      modules
    }
  }
}


module.exports = {
  chainWebpack: config => {
    config.module
      .rule('vue')
      .use('vue-loader')
      .tap(addBabelTransform);
  },
}

До ума я его не довёл, т.к. всё равно слишком "грязно", а надобности то особо и нет: если вам надо в компоненте погружаться глубоко в объект в поисках того, чего там может не быть - это явный признак того что текущий компонент слишком разжирел и его срочно надо резать на меньшие кусочки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы