6

I have been trying to figure out how to console.log('whatever') (while learning some Vue.js development) in my methods in order to understand some behaviour of whatever I am doing here.

I understand that there are some questions already asked here and have looked at the ESLINT documentation to try and figure this out... I just can't actually understand what I should do.

My code:

methods: {
    submitData() {
        this.$http.post('https://vue-testing-8a2de.firebaseio.com/data.json', this.user)
                  .then(response => {
                            console.log(response);
                        }, error => {
                            console.log(error)
                        })
    }
}

This is the error on ESLINT:

Failed to compile.

./src/App.vue
Module Error (from ./node_modules/eslint-loader/index.js):
error: Unexpected console statement (no-console) at src/App.vue:35:22:
  33 | this.$http.post('https://vue-testing-8a2de.firebaseio.com/data.json',this.user)
  34 |           .then(response => {
> 35 |                      console.log(response);
     |                      ^
  36 |                  }, error => {
  37 |                      console.log(error)
  38 |                  })


error: Unexpected console statement (no-console) at src/App.vue:37:22:
  35 |                      console.log(response);
  36 |                  }, error => {
> 37 |                      console.log(error)
     |                      ^
  38 |                  })
  39 |             }
  40 |         }


2 errors found.

I have looked at this website:

I tried commenting the previous line before console.log:

  • /*eslint no-console: "error"*/ (but it doesn't works well)

I need a step by step guide if I need to mess with JSON rules, as I have never done this before.

I am using vue-cli on WebStorm.

Thanks in advance!

2
  • 1
    based on this vue-cli github issue it's as simple as adding rules:{ "no-console": "off" } to the eslintConfig section of your package.json - there's more info in the issue linked to show how to strip console completely from production output Commented Dec 17, 2019 at 2:55
  • stackoverflow.com/questions/59366773/… Commented Jan 9, 2020 at 0:00

3 Answers 3

11

Edit package.json and in eslintConfig property add

"eslintConfig": { // don't add this, it's already there
    // there's stuff here
    "rules": { // find the rules property
    // addition starts here
        "no-console": "off"
    // addition ends here
    },
    // and keep what was already here

Now, if you want console.log stripped from production build

Edit vue.config.js

and add

// addition starts here
const TerserPlugin = require('terser-webpack-plugin')
const isProd = process.env.NODE_ENV === 'production'
// addition ends here

module.exports = {
    // addition starts here
    configureWebpack: {
        optimization: {
            minimize: true,
            minimizer: isProd ? [
                new TerserPlugin({
                    terserOptions: {
                        ecma: 6,
                        compress: { drop_console: true },
                        output: { comments: false, beautify: false }
                    }
                })
            ] : []
        }
    },
    // addition ends here
    // and keep what was already here
}
Sign up to request clarification or add additional context in comments.

5 Comments

I have looked for the package.json file and I found the one located in the following path my-project/package.json. I have placed the code on the location you've specified and it still returns an error. I have improvised the json.file and the new ESLINT error on the folling FIDDLE jsfiddle.net/alioshr/72g0hpnm/3
you added just the THREE lines "rules": { "no-console": "off" }, ??? exactly within "eslintConfig": {???
please check the complete json.file on the fiddle I have just added above. I have copied the whole file into JS part in order to show that I have added the lines indeed. Could you please take a look whenever you can?
see how you have a second set of rules: {} ... sorry, my bad, didn't realies rules already existed in package.json
my bad that I was so dumb that I did not see it as well. I have just followed you answer again and now it worked just fine!
0

1 Edit package.json

2 Then find "rules": {}

3 Change to this "rules":{"no-console":0}

4 if you Vue server in on, off it and run it again. Then the issue will be done

Comments

-1

Just use console.table(value) or console.info(value) instead of console.log(value)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.