我正在寻找一种禁用生产环境的console.log()
的方法。例如将以下代码放入nuxt.config.js
或index.js
:
if (process.env.NODE_ENV !== "development") {
console.log = () => {};
}
我尝试过,但是没有用。任何帮助将不胜感激。
我的nuxt.config.js在这里 https://gist.github.com/somaria/9a2b0e06497d13a35fe9eee141a15d07
答案 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