title: 1:1 error Parsing error: Unexpected character '�'
body: <p>I am new to javascript so sorry if this is silly question. Im trying to run Firebase deploy but I end up in this error message </p>
  
  <pre><code>  1:1  error  Parsing error: Unexpected character '�'
  
  ✖ 1 problem (1 error, 0 warnings)
  
  npm ERR! code ELIFECYCLE
  npm ERR! errno 1
  npm ERR! functions@1.0.0 lint: `eslint .`
  npm ERR! Exit status 1
  npm ERR!
  npm ERR! Failed at the functions@1.0.0 lint script.
  npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
  
  npm ERR! A complete log of this run can be found in:
  npm ERR!     C:\Users\Tino\AppData\Roaming\npm-cache\_logs\2018-07-15T14_22_52_268Z-debug.log
  
  Error: functions predeploy error: Command terminated with non-zero exit code1
  </code></pre>
  
  <p>My index.js looks like this </p>
  
  <pre><code>const functions = require('firebase-functions');
  // replaces keywords with emoji in the "text" key of messages
  // pushed to /messages
  exports.emojify =
      functions.database.ref('/messages/{pushId}/text')
      .onWrite(event =&gt; {
          // Database write events include new, modified, or deleted
          // database nodes. All three types of events at the specific
          // database path trigger this cloud function.
          // For this function we only want to emojify new database nodes,
          // so we'll first check to exit out of the function early if
          // this isn't a new message.
  
          // !event.data.val() is a deleted event
          // event.data.previous.val() is a modified event
          if (!event.data.val() || event.data.previous.val()) {
              console.log("not a new write event");
              return;
          }
  
          // Now we begin the emoji transformation
          console.log("emojifying!");
  
          // Get the value from the 'text' key of the message
          const originalText = event.data.val();
          const emojifiedText = emojifyText(originalText);
  
          // Return a JavaScript Promise to update the database node
          return event.data.ref.set(emojifiedText);
      });
  
  // Returns text with keywords replaced by emoji
  // Replacing with the regular expression /.../ig does a case-insensitive
  // search (i flag) for all occurrences (g flag) in the string
  function emojifyText(text) {
      var emojifiedText = text;
      emojifiedText = emojifiedText.replace(/\blol\b/ig, ":D");
      emojifiedText = emojifiedText.replace(/\bcat\b/ig, ":D(cat)");
      return emojifiedText;
  }
  </code></pre>
  
  <p>And the complete log for C:\Users\Tino\AppData\Roaming\npm-cache_logs\2018-07-15T14_22_52_268Z-debug.log looks like this</p>
  
  <pre><code>0 info it worked if it ends with ok
  1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
  1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
  1 verbose cli   '--prefix',
  1 verbose cli   'C:\\Users\\Tino\\Desktop\\FriendlyChatFunctions\\functions',
  1 verbose cli   'run',
  1 verbose cli   'lint' ]
  2 info using npm@5.6.0
  3 info using node@v8.11.3
  4 verbose run-script [ 'prelint', 'lint', 'postlint' ]
  5 info lifecycle functions@1.0.0~prelint: functions@1.0.0
  6 info lifecycle functions@1.0.0~lint: functions@1.0.0
  7 verbose lifecycle functions@1.0.0~lint: unsafe-perm in lifecycle true
  8 verbose lifecycle functions@1.0.0~lint: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\Tino\Desktop\FriendlyChatFunctions\functions\node_modules\.bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\sqlite;C:\Users\Tino\putty\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Brackets\command;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\Program Files\Java\jre-9.0.4\bin;C:\Users\Tino\AppData\Local\Microsoft\WindowsApps;C:\Users\Tino\AppData\Roaming\npm
  9 verbose lifecycle functions@1.0.0~lint: CWD: C:\Users\Tino\Desktop\FriendlyChatFunctions\functions
  10 silly lifecycle functions@1.0.0~lint: Args: [ '/d /s /c', 'eslint .' ]
  11 silly lifecycle functions@1.0.0~lint: Returned: code: 1  signal: null
  12 info lifecycle functions@1.0.0~lint: Failed to exec lint script
  13 verbose stack Error: functions@1.0.0 lint: `eslint .`
  13 verbose stack Exit status 1
  13 verbose stack     at EventEmitter.&lt;anonymous&gt; (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:285:16)
  13 verbose stack     at emitTwo (events.js:126:13)
  13 verbose stack     at EventEmitter.emit (events.js:214:7)
  13 verbose stack     at ChildProcess.&lt;anonymous&gt; (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
  13 verbose stack     at emitTwo (events.js:126:13)
  13 verbose stack     at ChildProcess.emit (events.js:214:7)
  13 verbose stack     at maybeClose (internal/child_process.js:925:16)
  13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
  14 verbose pkgid functions@1.0.0
  15 verbose cwd C:\Users\Tino\Desktop\FriendlyChatFunctions
  16 verbose Windows_NT 10.0.17134
  17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "--prefix" "C:\\Users\\Tino\\Desktop\\FriendlyChatFunctions\\functions" "run" "lint"
  18 verbose node v8.11.3
  19 verbose npm  v5.6.0
  20 error code ELIFECYCLE
  21 error errno 1
  22 error functions@1.0.0 lint: `eslint .`
  22 error Exit status 1
  23 error Failed at the functions@1.0.0 lint script.
  23 error This is probably not a problem with npm. There is likely additional logging output above.
  24 verbose exit [ 1, true ]
  </code></pre>
  
  <p>The code  is copy pasted from a tutorial (2 years old) so I dont know what could be wrong.</p>