【问题标题】:NuxtJS: Disable console.log in production envNuxtJS:在生产环境中禁用 console.log
【发布时间】:2020-10-18 03:24:22
【问题描述】:

我正在寻找一种方法来为生产环境禁用 console.log()。比如把下面的代码放到nuxt.config.jsindex.js:

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

我试过了,但它不起作用。任何帮助将不胜感激。

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

【问题讨论】:

  • 您可以在构建阶段尝试在变量名之前使用NUXT_ENV_。你也可以分享你的 nuxt.config.js 文件吗?

标签: javascript vue.js nuxtjs


【解决方案1】:

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
        }
      }
    }
  }
}

【讨论】:

    【解决方案2】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-13
      • 2021-11-10
      • 2018-09-19
      • 2016-05-21
      • 1970-01-01
      • 2020-10-12
      • 2011-07-19
      • 2019-10-14
      相关资源
      最近更新 更多