NuxtJS:在生产环境中禁用console.log

时间:2020-10-18 03:24:22

标签: javascript vue.js nuxtjs

我正在寻找一种禁用生产环境的console.log()的方法。例如将以下代码放入nuxt.config.jsindex.js

if (process.env.NODE_ENV !== "development") {
  console.log = () => {};
}

我尝试过,但是没有用。任何帮助将不胜感激。

我的nuxt.config.js在这里 https://gist.github.com/somaria/9a2b0e06497d13a35fe9eee141a15d07

2 个答案:

答案 0 :(得分:2)

Nuxt的构建过程包括terser,可以将其configured用于从生产构建中自动删除控制台语句。您可以设置build.terser.terserOptions

// nuxt.config.js
export default {
  build: {
    terser: {
      // https://github.com/terser/terser#compress-options
      terserOptions: {
        compress: {
          drop_console: true
        }
      }
    }
  }
}

答案 1 :(得分:0)

作为替代方案,也可以使用插件来完成。

Plugins文件夹下,我们可以创建一个名为disableLogs.js的文件,看起来像这样:

// plugins/disableLogs.js

export function disableLogs() {
  console.log = () => {};
  // or you can override any other stuff you want
}

process.env.NODE_ENV === "production" ? disableLogs() : null;

然后我们可以注册此插件以在nuxt.config.js内使用

// nuxt.config.js
plugins: [
  { src: "~/plugins/disableLogs.js" },
  { src: "~/plugins/any-other-plugin.js"
],

这将在实例化Vue.js根应用程序之前运行。

您还可以在其他地方配置它以运行客户端或服务器端等。此处更多信息-https://nuxtjs.org/guide/plugins#vue-plugins