Поделиться классом между передней и задней (nuxt.js) - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь разделить простой класс между vue и express.Проблема в том, что vue поддерживает импорт / экспорт по умолчанию для es6, тогда как express (node) поддерживает только синтаксис require / module.exports.

Есть ли способ использовать оператор экспорта по умолчанию в бэкэнде nuxt.js (express.JS), так что я могу использовать свой класс в обоих концах?Или, может быть, добавить поддержку для module.exports в vue?

Спасибо!

1 Ответ

0 голосов
/ 13 февраля 2019

Вы можете исключить файл из транспилера.

const Path = require('path')

module.exports = {
  build:{
    extend({ module: { rules } }) {
      const rule = findJsxRule(rules)
      rule.exclude = exclude(
        [
          Path.resolve(__dirname, '../lib'),
          Path.resolve(__dirname, '../interface')
        ],
        rule.exclude
      )
    }
  }
}

function findJsxRule(rules) {
  return rules.find(rule => {
    return rule.test.toString() === '/\\.jsx?$/i'
  })
}

function exclude(paths, old) {
  return file => {
    if (paths.some(path => file.startsWith(path))) {
      return true
    } else if (old) {
      return old(file)
    } else {
      return false
    }
  }
}
...