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

NuxtJS: Disable console.log in production env

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

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

我试过了,还是不行。任何帮助将不胜感激。

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

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

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

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