2016-12-01 10 views
2

Travis CIに合格したGitHub projectがあります。新機能のpull requestを作成する際に、トラビスCI fails両方PRとによる2つのeslintエラーにプッシュ次のようaccounts.js 122を介しeslint Travis CIで障害が発生しましたが、ローカルではありません。

/home/travis/build/enove/Thriver/packages/thriver-accounts/lib/accounts.js 
    121:5 error Strings must use singlequote quotes 
    122:5 error Strings must use singlequote quotes 

ライン119は、次のとおり

119: return `Hello ${user.profile.firstname}!\n\n` + 
120: `To verify your account email, simply click the link below.\n\n${url}\n\n` + 
121: `If you weren't expecting this email, simply delete it.\n\n` + 
122: `Thanks!\n\nAll of us at WCASA`; 

コミットしませんでしたさらにaccounts.jsを変更し、ローカルエスクリントがエラーなく通過します。私は、ノード、npm、流星のバージョンがトラビスCIと同じであることを確認して確認しました。

次のようにトラヴィスCIの構成は次のとおりです。次のように

{ 
    "sudo": "required", 
    "language": "node_js", 
    "node_js": "4.1.1", 
    "before_install": [ 
    "curl -L https://git.io/ejPSng | /bin/sh" 
    ], 
    "env": "CXX=g++-4.8", 
    "addons": { 
    "apt": { 
     "sources": [ 
     "ubuntu-toolchain-r-test" 
     ], 
     "packages": [ 
     "g++-4.8" 
     ] 
    } 
    }, 
    "services": "mongodb", 
    "script": [ 
    "meteor npm run lint" 
    ], 
    "group": "stable", 
    "dist": "precise", 
    "os": "linux" 
} 

.eslintrcは次のとおりです。

{ 
    "parser": "babel-eslint", 
    "parserOptions": { 
    "ecmaVersion": 6, 
    "ecmaFeatures": { 
     "impliedStrict": true 
    } 
    }, 

    "env": { 
    "browser": true, 
    "node": true, 
    "mongo": true, 
    "meteor": true 
    }, 

    "extends": [ 
    "airbnb" 
    //"plugin:meteor/recommended" 
    ], 

    "globals": { 
    "Thriver": true, 
    "SimpleSchema": true, 
    "Marked": true, 
    "SHA256": true, 
    "google": true, 
    "geoXML3": true, 
    "AutoForm": true, 
    "details_shim": true 
    }, 

    "rules": { 
    "no-underscore-dangle": 0, 
    "new-cap": 0 
    } 
} 

これは、別のファイルに前に起こっていると私はeslintを持っていることによって、問題を「解決」行を無視する。しかし、私はすべての謎の問題のためにそれをすることはできません。何かアドバイス?

答えて

0

どのようにeslintがローカルに渡っていたかはまだ分かりません。おそらく、私はエスリントやエアバンのバージョンで後ろにいたでしょう。しかし、私はその行が本当に修正される必要があることを認識しました。下の2行のコードでは、これらの文字列に変数がないため、バックティックを使用しないでください。

119: return `Hello ${user.profile.firstname}!\n\n` + 
120: `To verify your account email, simply click the link below.\n\n${url}\n\n` + 
121: 'If you weren\'t expecting this email, simply delete it.\n\n' + 
122: 'Thanks!\n\nAll of us at WCASA'; 

Eslintはなく、すべてのセグメントが変数を含む一貫性のものとは異なるスタイルを連結した文字列と多くの幸せです。

0

http://eslint.org/docs/rules/quotes

これが最も可能性の高い問題を修正です。

JavaScriptでは、二重引用符、一重引用符、およびバッククォート(ECMAScript 6以降)のいずれかの方法で文字列を定義できます。例えば:

/*eslint-env es6*/ 

var double = "double"; 
var single = 'single'; 
var backtick = `backtick`; // ES6 only 

コードベース内の文字列を定義する方法の選択は、(式の埋め込みを解釈することを可能にする)テンプレートリテラルの文体1つの外です。多くのコードベースでは、一貫した方法で文字列を定義する必要があります。

これらのルールのいずれかを設定してテストを再実行してみます。

これで問題が解決しない場合はお知らせください。

+0

ご返信ありがとうございます。私は '.eslintrc'の内容を私の投稿に追加しました。私は、シングルとバックティックの両方の弦を使用できるエアバッグスタイルのガイドを使用しています。さらに、エスプリントは局所的に通過する。それはトラヴィスのCIを通過しません。 –

関連する問題