4

我已经阅读了使用 Nuxt 进行编译的问题node_modules,但据说新的 Nuxt 2 已经通过文件transpile中的选项解决了这个问题nuxt.config.js

https://nuxtjs.org/api/configuration-build/#transpile

这是我所拥有的:

export default {
  router: {
    base: '/',
  },
  build: {
    transpile: [
      'choices.js',
      'lazysizes',
      'swiper',
      'vee-validate'
    ],
    extractCSS: true
  },
  srcDir: 'src/',
  performance: {
    gzip: true
  },
  render: {
    compressor: {
      threshold: 100
    }
  },
  dev: false
}

我删除了一些不相关的内容以使其更易于阅读。

当我运行npm run build( )时nuxt build,编译的 JS 文件包含对 es6 和 es7 代码的引用,例如const等。letvar

我已将此问题隔离为来自Swiper。它似乎在内部依赖于似乎导致问题的称为 Dom7 的东西。

如果可能,我想将这些node_modules依赖项编译为 es5。我不确定我当前的设置在这方面实际上是否在做任何事情。

我相信 Nuxtvue-app用于 Babel,但我什至尝试以下方法均未成功:

babel: {
  presets: [
    '@babel/preset-env'
  ],
  plugins: [
    '@babel/plugin-syntax-dynamic-import'
  ]
}

那里也没有太多的快乐。在最终构建中没有什么不同。

我正在使用 Nuxt2.1.0

任何帮助表示赞赏。谢谢!

4

2 回答 2

5

您还需要转译 Dom7,因此 Nuxt 配置应具有:

build: {
    transpile: [
      'swiper',
      'dom7',
    ],
}
于 2019-03-05T14:34:11.207 回答
1

我有完全相同的问题。

构建中的供应商选项已被弃用,因此我相信从我在这里阅读的内容https://medium.com/nuxt/nuxt-2-is-coming-oh-yeah-212c1a9e1a67#a688

我设法将我的案例隔离到“swiper”库中。如果我从我的项目中删除它,所有对 或 的引用let都会const消失class。我也尝试过 transpile 选项,但它似乎没有任何效果。

您是否会尝试从您的项目中排除 swiper 以查看我们是否可以隔离问题?

于 2018-10-04T10:04:04.457 回答