JSON中的意外令牌在位置0错误

时间:2019-10-08 12:46:29

标签: angular ionic-framework

我在这里研究了此问题,但看起来都不像我的。尝试在cmd中运行任何内容时出现此错误,例如离子信息

显示此错误:

SyntaxError: C:\Users\codewise\.ionic\update.json: Unexpected token   in JSON at position 0
    at JSON.parse (<anonymous>)
    at C:\Users\codewise\AppData\Roaming\npm\node_modules\ionic\node_modules\jsonfile\index.js:33:18
    at C:\Users\codewise\AppData\Roaming\npm\node_modules\ionic\node_modules\graceful-fs\graceful-fs.js:115:16
    at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)

离子信息:

Ionic:

   Ionic CLI                     : 5.4.2 (C:\Users\codewise\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework               : @ionic/angular 4.10.1
   @angular-devkit/build-angular : 0.801.3
   @angular-devkit/schematics    : 8.1.3
   @angular/cli                  : 8.1.3
   @ionic/angular-toolkit        : 2.0.0

Cordova:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.1.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.1, (and 6 other plugins)

Utility:

   cordova-res : not installed
   native-run  : 0.2.8

System:

   Android SDK Tools : 26.1.1 (C:\Users\codewise\AppData\Local\Android\Sdk)
   NodeJS            : v10.16.3 (C:\Program Files\nodejs\node.exe)
   npm               : 3.10.10
   OS                : Windows 10

我尝试创建另一个项目,并且此错误不断弹出,并且该项目一无所有(???)

这是C:\ Users \ codewise \ AppData \ Roaming \ npm \ node_modules \ ionic \ node_modules \ jsonfile \ index.js

var _fs
try {
  _fs = require('graceful-fs')
} catch (_) {
  _fs = require('fs')
}

function readFile (file, options, callback) {
  if (callback == null) {
    callback = options
    options = {}
  }

  if (typeof options === 'string') {
    options = {encoding: options}
  }

  options = options || {}
  var fs = options.fs || _fs

  var shouldThrow = true
  if ('throws' in options) {
    shouldThrow = options.throws
  }

  fs.readFile(file, options, function (err, data) {
    if (err) return callback(err)

    data = stripBom(data)

    var obj 
    try {
      obj = JSON.parse(data, options ? options.reviver : null)
    } catch (err2) {
      if (shouldThrow) {
        err2.message = file + ': ' + err2.message
        return callback(err2)
      } else {
        return callback(null, null)
      }
    }

    callback(null, obj)
  })
}

function readFileSync (file, options) {
  options = options || {}
  if (typeof options === 'string') {
    options = {encoding: options}
  }

  var fs = options.fs || _fs

  var shouldThrow = true
  if ('throws' in options) {
    shouldThrow = options.throws
  }

  try {
    var content = fs.readFileSync(file, options)
    content = stripBom(content)
    return JSON.parse(content, options.reviver)
  } catch (err) {
    if (shouldThrow) {
      err.message = file + ': ' + err.message
      throw err
    } else {
      return null
    }
  }
}

function stringify (obj, options) {
  var spaces
  var EOL = '\n'
  if (typeof options === 'object' && options !== null) {
    if (options.spaces) {
      spaces = options.spaces
    }
    if (options.EOL) {
      EOL = options.EOL
    }
  }

  var str = JSON.stringify(obj, options ? options.replacer : null, spaces)

  return str.replace(/\n/g, EOL) + EOL
}

function writeFile (file, obj, options, callback) {
  if (callback == null) {
    callback = options
    options = {}
  }
  options = options || {}
  var fs = options.fs || _fs

  var str = ''
  try {
    str = stringify(obj, options)
  } catch (err) {
    // Need to return whether a callback was passed or not
    if (callback) callback(err, null)
    return
  }

  fs.writeFile(file, str, options, callback)
}

function writeFileSync (file, obj, options) {
  options = options || {}
  var fs = options.fs || _fs

  var str = stringify(obj, options)
  // not sure if fs.writeFileSync returns anything, but just in case
  return fs.writeFileSync(file, str, options)
}

function stripBom (content) {
  // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified
  if (Buffer.isBuffer(content)) content = content.toString('utf8')
  content = content.replace(/^\uFEFF/, '')
  return content
}

var jsonfile = {
  readFile: readFile,
  readFileSync: readFileSync,
  writeFile: writeFile,
  writeFileSync: writeFileSync
}

module.exports = jsonfile

当我打开update.json时,显示如下内容:

(the file is not displayed in editor because it is either binary or uses an unsupported text encoding)
???????????????????????????????

1 个答案:

答案 0 :(得分:0)

我认为您安装的Ionic已损坏。尝试将C:\Users\codewise\.ionic重命名为C:\Users\codewise\.ionic-old,然后再次运行命令。如果没有帮助,请重新安装ionic。

npm uninstall -g ionic(您可能需要在运行此文件夹后再次重命名该文件夹)

npm install -g ionic