2016-08-19 7 views
0

CircleCI가 linting에 실패한 테스트를 실행하려고하는데, Meteor 작동 방식과 관련하여 서버와 클라이언트에서 모두 실행되지 않습니다. 일부 코드는 서버 또는 클라이언트에서만 실행해야합니다.Meteor.js linting에서 CircleCI 통합이 실패합니다.

... 
import { Meteor } from 'meteor/meteor'; 
import { _ } from 'meteor/underscore'; 
import { DDP } from 'meteor/ddp-client'; 

if (Meteor.isServer) { 
    import './server/publications.coffee'; 
... 

을 다음 오류 :

/home/ubuntu/todos/imports/api/lists/lists.tests.js 
    16:3 error Parsing error: 'import' and 'export' may only appear at the top level 

분명히이이 일의 유성의 방법과 일치하지 않습니다이 있기 때문에, 당신은 다른 블록의 내부에 가져 오기를 수행 할 때 보풀이 실패 유성/할아버지 앱에있어 잘 작동합니다.

CircleCI linting 검사를 무시하거나 경고 항목으로 어떻게 바꿉니 까?

답변

1

Eslint 파서는 ESe 스펙에서 허용하지 않으므로 Meteor 중첩 가져 오기 구문을 허용하지 않습니다. 자세한 내용은 here을 참조하십시오. 이 문제를 해결하려면 두 가지 옵션이 있습니다. 즉 allowImportExportEverywhere 옵션을 사용하여이 구문을 지원하는 babel-eslint 파서로 전환하십시오. 이처럼 package.json을 수정해야합니다

if (Meteor.isServer) { 
    require('./server/publications.coffee'); // eslint-disable-line global-require 
} 

이러한 옵션 중 하나가 보풀 패스를해야한다 :

또는
"devDependencies": { 
    ... 
    "babel-eslint": "^5.0.4" 
}, 
"eslintConfig": { 
    "parser": "babel-eslint", 
    "parserOptions": { 
    "sourceType": "module", 
    "allowImportExportEverywhere": false 
    }, 
} 
... 

는 단순히 require 조건부 옛날 방식을 파일을 포함하는 데 사용할 수있는 CircleCI에. CircleCI에서 사용할 계획이라면 setting up linting in your editor도 좋습니다.