2014-04-21 3 views
6

, 당신은 당신의 package.jsonscripts 해시를 추가하여 npm run를 사용하여 임의의 명령을 실행할 수 있습니다Windows의 package.json에서 외부에 위치한 'npm run'스크립트가 있습니까? 우리가 알다시피

"scripts": { 
    "build-js": "browserify browser/main.js | uglifyjs -mc > static/bundle.js" 
} 

다음 npm run build-js으로 실행 될 수있다.

당신은 또한 같은, 같은 bash는 스크립트와 같은 별도의 스크립트로 밖으로 이러한 명령을 이동할 수 있습니다 분명히

"scripts": { 
    "build-js": "bin/build.sh" 
} 

이를 기본적으로 인해 Windows가 bash는 스크립트를 실행 할 수있는하지 않도록, 윈도우에서 작동하지 않습니다 . bash 포트 등을 설치할 수 있지만 같은 일을하기 위해 기본 Windows 구성을 사용할 수 있기를 바랍니다.

나는 표준 노드 스크립트 파일 내에서 임의의 명령을 실행할 수 child_process.exec를 사용하여 포함, 다른 방법을 시도했습니다

:

"scripts": { 
    "build-js": "node bin/build.js" 
} 

하지만 child_process 눈치를 만들고, 상대적으로 큰/집약적 인 작업에 질식 한 사용할 수 없다.

package.jsonnpm run 스크립트를 별도의 파일로 이동하는 Windows 관련 (또는 더 나은 크로스 플랫폼) 방법이 있습니까? 가급적이면 bash를 필요로하지 않는 것이 좋을까요?

답변

11

NPM을 빌드 도구로 사용하는 경우 a helpful article에서 JavaScript 파일을 단순히 사용하지 않는 이유는 무엇입니까? 명령 npm run build-favicon

3

JS 파일을 실행 노드를 사용하여 터미널에서 실행된다

// scripts/favicon.js 

var favicons = require('favicons'); 
var path = require('path'); 

favicons({ 
    source: path.resolve('../assets/images/logo.png'), 
    dest: path.resolve('../dist/'), 
}); 


// package.json 

"scripts": { 
    "build-favicon": "node scripts/favicon.js", 
}, 
"devDependencies": { 
    "favicons": "latest", 
} 

는 옵션입니다 : 여기

는 (약간 명확성을 위해 수정) 기사에 주어진 예제 , 그러나 Windows와 * NIX 모두에서 시스템 명령을 실행해야한다면, 스크립트가 지저분해질 수 있습니다. 교차 플랫폼 스크립트의 경우 shelljs 패키지를 사용해보세요.

0

make 명령을 사용하는 것도 좋은 방법입니다.

메이크

build-js: 
    browserify browser/main.js | uglifyjs -mc > static/bundle.js 

package.json

"scripts": { 
    "build-js": "make build-js", 
} 

당신은 더 약 makehere을 찾을 수 있습니다.

관련 문제