代码之家  ›  专栏  ›  技术社区  ›  Michael K Madison

轨道6包.json部署问题“位置0处JSON中的意外令牌v”

  •  0
  • Michael K Madison  · 技术社区  · 6 年前

    cap deploy ToRails生产环境失败,出现以下错误 Unexpected token v in JSON at position 0

    纱线错误日志:

    PATH:
      /home/deploy/synapse/shared/bundle/ruby/2.5.0/bin:/home/deploy/.rbenv/versions/2.5.5/bin:/home/deploy/.rbenv/libexec:/home/deploy/.rbenv/plugins/ruby-build/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    
    Yarn version:
      1.19.2
    
    Node version:
      8.16.2
    
    Platform:
      linux x64
    
    Trace:
      SyntaxError: /home/deploy/[APPNAME]/releases/20191210180716/package.json: Unexpected token v in JSON at position 0
          at JSON.parse (<anonymous>)
          at /usr/share/yarn/lib/cli.js:1625:59
          at Generator.next (<anonymous>)
          at step (/usr/share/yarn/lib/cli.js:304:30)
          at /usr/share/yarn/lib/cli.js:315:13
          at <anonymous>
    

    package.json

    {
      "dependencies": {
        "@rails/webpacker": "4.2.2",
        "serialize-javascript": "^2.1.1"
      },
      "devDependencies": {
        "serialize-javascript": "^2.1.1",
        "webpack-dev-server": "^3.9.0"
      },
      "license": "UNLICENSED"
    }
    

    无法在部署到生产中 asset:precompile 但是在本地使用RAILS_ENV=production precompile可以顺利完成。那么,我做错什么了?

    好吧,当我看生产机器的时候包.json看起来像这样:

    version https://git-lfs.github.com/spec/v1
    oid sha256:4289b53b39c2c47dd-other-digest-crap-beb0aefed39c39fa84e3b41f72056982
    size 226
    

    0 回复  |  直到 6 年前
        1
  •  0
  •   Michael K Madison    6 年前

    临时修复

    好的,为了解决这个问题,我显式链接包.json从我的卡皮斯特拉诺分享部署.rb

    append :linked_files, "package.json" # depending on your religion you may also include "package-lock.json"
    

    scp文件到应用程序共享文件夹等等,可以。

    更好的解决方案

    好吧,这个问题之所以存在,是因为我对所有json文件都盲目地使用git-lfs。这个特定的应用程序有很多json数据。跟踪 *.json 只是不聪明,特别是对于rails等需要的小文件,但有两种可能的解决方案:

    1. 我的vps上没有安装git lfs,安装解决了这个问题——有点像。问题仍然是,我可能不希望lfs跟踪的每个json文件都是大的json数据文件
    2. 我将大型json文件移动到 ./data/ 和 git lfs track "data/*"

    这似乎解决了问题

    推荐文章