【发布时间】:2019-03-07 20:43:21
【问题描述】:
我已经阅读了使用 Nuxt 转换 node_modules 的问题,但据说新的 Nuxt 2 已经通过 nuxt.config.js 文件中的 transpile 选项解决了这个问题。
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 和 let 等,而它应该是 var。
我已将此问题隔离为来自 Swiper。它似乎在内部依赖于似乎导致问题的称为 Dom7 的东西。
如果可能,我想将这些 node_modules 依赖项编译为 es5。我不确定我当前的设置实际上在这方面是否有任何作用。
我相信 Nuxt 将 vue-app 用于 Babel,但我什至尝试以下方法均未成功:
babel: {
presets: [
'@babel/preset-env'
],
plugins: [
'@babel/plugin-syntax-dynamic-import'
]
}
那里也没有太多欢乐。在最终构建中没有任何不同。
我正在使用 Nuxt 2.1.0
任何帮助表示赞赏。谢谢!
【问题讨论】:
-
您确定代码来自您尝试转译的模块吗?你可以在codesandbox或github上设置一个复制库吗?
-
我会尝试这样做,但不确定如何使用 Nuxt 进行 Codesandbox。我试试看。
-
Codesandbox 上周左右增加了 SSR 支持,现在有 Nuxt 模板
标签: javascript vue.js babeljs nuxt.js nuxt-edge