如何使用 Nuxt 2 转译 node_modules 中的依赖项?
How can I transpile a dependency in node_modules with Nuxt 2?
我读到过使用 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
感谢任何帮助。谢谢!
我有完全相同的问题。
build 下的 vendor 选项已弃用,所以它被忽略了我相信从我在这里读到的内容 https://medium.com/nuxt/nuxt-2-is-coming-oh-yeah-212c1a9e1a67#a688
我设法将我的案例隔离到 "swiper" 图书馆。如果我从我的项目中删除它,所有对 let
、const
或 class
的引用都将消失。我也尝试过transpile选项,但它似乎没有任何效果。
您是否会尝试从您的项目中排除 swiper 以查看我们是否可以隔离问题?
你还需要转译 Dom7,所以 Nuxt 配置应该有:
build: {
transpile: [
'swiper',
'dom7',
],
}
我读到过使用 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
感谢任何帮助。谢谢!
我有完全相同的问题。
build 下的 vendor 选项已弃用,所以它被忽略了我相信从我在这里读到的内容 https://medium.com/nuxt/nuxt-2-is-coming-oh-yeah-212c1a9e1a67#a688
我设法将我的案例隔离到 "swiper" 图书馆。如果我从我的项目中删除它,所有对 let
、const
或 class
的引用都将消失。我也尝试过transpile选项,但它似乎没有任何效果。
您是否会尝试从您的项目中排除 swiper 以查看我们是否可以隔离问题?
你还需要转译 Dom7,所以 Nuxt 配置应该有:
build: {
transpile: [
'swiper',
'dom7',
],
}