2017-03-26 2 views
0

package.json에는이 방식으로 정의 된 스크립트가 거의 없습니다. 내가 $ npm run lint:fix을 실행하면npm 스크립트 명령 줄 인수를 전파하는 방법은 무엇입니까?

{ 
    "name": "project", 
    "scripts": { 
    "standard": "./node_modules/.bin/standard", 
    "lint": "npm run standard", 
    "lint:fix": "npm run lint -- --fix" 
    } 
} 

나는 인수 --fix./node_modules/.bin/standard에 전파되지 않는 것을 발견했습니다. 이것은 내가 얻는 결과입니다. --fix 인수가 제대로 전파되지 않았기 때문에

 
bash-3.2$ npm run lint:fix 

> [email protected] lint:fix /path/to/my/project 
> npm run lint -- --fix 

> [email protected] lint /path/to/my/project 
> npm run standard "--fix" 

> [email protected] standard /path/to/my/project 
> standard 

standard: Use JavaScript Standard Style (http://standardjs.com) 
standard: Run `standard --fix` to automatically fix some problems. 
    /path/to/my/project/data/someFile.js:38:34: Extra semicolon. 

npm ERR! Darwin 16.0.0 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "standard" "--fix" 
npm ERR! node v6.9.4 
npm ERR! npm v3.10.10 
npm ERR! code ELIFECYCLE 

여기에 오류가 있습니다.

글쎄, 내 질문은 linting 또는 standardJs 주위되지 않습니다. 인수를 최상위 스크립트까지 올바르게 전달하는 방법을 알고 싶습니다.

답변

0

npm 스크립트에 -- --을 두 번 사용하지 않아도됩니다.

귀하의 lint:fix 스크립트는해야한다 : "npm run lint --fix"

+0

안녕하세요 @edwarddamato, 나는 두 번'- --'가 필요하다고 생각합니다. Coz, 첫 번째 하이픈 집합은 npm script 명령과 인수 (스크립트에 전달해야하는 인수) 사이의 구분 기호이며 두 번째 집합은 인수 자체입니다. – Goje87

0

글쎄, 이것이 내가이 문제에 많은 땀을 흘리고 후 발견 것입니다. (그것은 매우 어리 석다.).

인수가 전파되지 않았기 때문에 오류가 발생했습니다. 대신 --fix 플래그가 standard에 있기 때문에 linting 중에 세미콜론 문제를 자동으로 수정하지 않기 때문입니다.

주어진 스크립트 집합 (질문에서). 인수가 성공적으로 전파되었습니다. 따라서 최상위 스크립트까지 인수를 전달하는 방법입니다.

관련 문제