Как я могу передать зависимость в node_modules с Nuxt 2?
Я читал о проблемах с транспилированием node_modules
с Nuxt, но новый Nuxt 2, как говорят, решил эту проблему с transpile
вариант в nuxt.config.js
файл.
https://nuxtjs.org/api/configuration-build/
Вот что у меня есть:
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: {
presets: [
'@babel/preset-env'
],
plugins: [
'@babel/plugin-syntax-dynamic-import'
]
}
Там тоже не так много радости. Ничто не выглядит иначе в финальной сборке.
Я использую Nuxt 2.1.0
Любая помощь приветствуется. Спасибо!
1 ответ
Вам также необходимо перенести Dom7, поэтому в конфигурации Nuxt должно быть:
build: {
transpile: [
'swiper',
'dom7',
],
}
У меня точно такая же проблема.
Опция вендора при сборке устарела, поэтому она просто игнорируется, я думаю, из того, что я прочитал здесь, https://medium.com/nuxt/nuxt-2-is-coming-oh-yeah-212c1a9e1a67
Мне удалось изолировать мой случай с библиотекой "swiper". Если я удалю это из моего проекта, все ссылки на let
, const
или же class
пропали. Я тоже попробовал опцию транспиляции, но она, похоже, не имеет никакого эффекта.
Будете ли вы пытаться исключить swiper из вашего проекта, чтобы посмотреть, сможем ли мы изолировать проблему?