【问题标题】:module.exports and export default in nuxtnuxt 中的 module.exports 和导出默认值
【发布时间】:2020-06-07 04:17:53
【问题描述】:

在过去的几天里,我对此感到有些头疼,这肯定是由于我缺乏经验。我最近开始使用nuxtnuxt 模块。

当我使用命令yarn create nuxt-app my-project 时,nuxt.config.js 文件将填充module.exports。我的问题是,当我安装某些模块时,配置只在export default 中工作。例如,我有以下配置:

  build: {
      extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }
    }
  }

这个配置只能在export default里面工作,但是我写在module.exports里面就不行,我不知道原因。

另一个例子是head,假设如下代码:

  head: {
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.png' }
    ]
  },

当我把它放在export default 中时,它不起作用,而在module.exports 中它起作用了。所以,直到现在我都在反复试验,这取决于它在哪里工作。

我知道问题module.exports vs. export default in Node.js and ES6 中有一个参考。但是,我还不清楚为什么有些东西在 module.exports 中有效,而另一些在 export default 中有效。

我们将不胜感激。

【问题讨论】:

  • 你能澄清一下它到底是如何不起作用的吗?错误信息是什么? transpiled 环境中exportmodule.exports 之间的区别取决于 ES/CommonJS 模块互操作的工作方式(取决于 Webpack/Babel/TS 配置)。在用户空间中,module.exports 通常可以与export default 互换,因为 CommonJS 模块导出被视为默认导出。在某些配置中,module.exports 可以与export { } 互换。我无法检查模块互操作在 Nuxt 配置中的工作方式。试试exports.default = 而不是module.exports,让我知道这是否可行。
  • 在我的情况下,[nuxt.config.ts]在[export default config]和[exports.default = config]的条件下不加载配置。

标签: javascript vue.js ecmascript-6 nuxt.js


【解决方案1】:

我遇到了类似的问题...试图实现“禁用此行的 Nuxt/no-cjs-in-config”以便能够使用 module.exports =,但它不断恢复为 export default当我在终端中运行 firebase deploy --only functions 并抛出 syntaxError 时

【讨论】:

  • 点评来源: 嗨,“我也有这个问题”不能被视为 S.O. 的答案。规则。请将此作为对该问题的评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
  • 2019-05-22
  • 2019-09-07
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
相关资源
最近更新 更多