Ошибка: модуль должен экспортировать функцию: i18next - PullRequest
0 голосов
/ 27 сентября 2018

В моем приложении Nuxt js я установил i18next :

npm install --save-dev i18next

Затем каждый раз, когда я добавляю его в массив плагинов в nuxt.config.js как документация предлагает:

module.exports = {
  build: {
    vendor: ['i18next']
  }
}

Я получаю эту ошибку при запуске сервера (npm run dev)

 ERROR  Nuxt error

  Error: Module should export a function: i18next

  - module.js:127 ModuleContainer.addModule
    [begueradj]/[nuxt]/lib/core/module.js:127:13

  - utils.js:96 promise.then
    [begueradj]/[nuxt]/lib/common/utils.js:96:43


  - next_tick.js:189 process._tickCallback
    internal/process/next_tick.js:189:7

  - module.js:696 Function.Module.runMain
    module.js:696:11

  - bootstrap_node.js:204 startup
    bootstrap_node.js:204:16

  - bootstrap_node.js:625 
    bootstrap_node.js:625:3

Почему это происходит?Как это исправить?

1 Ответ

0 голосов
/ 27 сентября 2018

Массив vendor используется в Nuxt.js 1.x, чтобы помочь Webpack 3 оптимизировать сборку.Он не используется для импорта библиотеки.

(примечание: начиная с Nuxt.js 2.x эта конфигурация vendor устарела и может быть удалена)


Для импорта внешнегоlib, вы создали собственный плагин Vue.js и объявили его в nuxt.config.js в массиве plugins (https://nuxtjs.org/guide/plugins/)

module.exports = {
  plugins: ['~/plugins/your-cutom-plugins']
}

или

, которые вы можете импортироватьваша внешняя библиотека в файле вашего компонента / страницы / промежуточного программного обеспечения / плагина, чтобы использовать ее напрямую:

<script>
import i18next from 'i18next'
​
i18next.init({ 
   ...
)
</script>

(примечание: предпочитайте использовать install --save, потому что «i18next» используется не только на dev, но и на производстве.)

...