coffeescript에 npm 패키지를 작성할 수 있습니까?
나는 한동안 coffeescript를 사용했습니다. 이제 npm 패키지를 작성해야합니다. coffeescript로 작성할 수 있습니까? 아니면 coffeescript를 javascript로 컴파일해야합니까?
커피 스크립트로 패키지를 작성하되 자바 스크립트로만 게시 할 것을 제안합니다. 나는 이것을 이렇게한다 :
- coffeescript 코드가 들어갑니다
src
- 코드는
lib
src
내 자식 저장소에 최선을 다하고,lib
내.gitignore
lib
npm에 게시src
되고 내.npmignore
coffee-script
패키지에 내devDependencies
영감을 얻기 위해 내 간단한 패키지 refix를 살펴볼 수 있습니다 .
- https://github.com/linus/refix
npm install refix
coffeescript에서 NPM 모듈을 작성할 수 있지만 JS 사용자가 사용할 수 있으려면 NPM에 게시하기 전에 JS로 컴파일해야합니다.
package.json
prepublish
게시하기 전에 지정된 스크립트를 실행하는 스크립트 후크를 사용하여 쉽게 수행 할 수 있습니다. 다음 prepublish
은 zombie.js 의 NPM 후크 의 예입니다.
https://github.com/assaf/zombie/blob/master/package.json#L16
CoffeeScript에서 npm 패키지를 처음부터 작성했습니다. 브라우저뿐만 아니라 노드에도 CoffeScript를 사용하는 것이 좋습니다. 그러나 모듈을 사용하거나 게시하기 전에 소스 CoffeeScript를 JavaScript로 컴파일해야합니다. 그래도 CoffeeScript를 사용하는 데 방해가되지는 않습니다.
팁 : 개발하는 동안 coffee -cw yourfile.coffee
(명령 줄)을 사용 하여 파일의 변경 사항을 확인하고 저장시 컴파일하십시오.
당신의 모듈 많은 경우 coffee-script
자신의에서 devDependencies
, 그냥 전 세계적으로 설치하는 데 유용합니다 coffee-script
(이 훨씬 더 오래 걸립니다) 대신에 각각의 모듈을 설치합니다.
coffee-build 는 coffee-script
.
다음 두 스크립트를 다음에 추가하십시오 package.json
.
{
"name": "my-coffee-module",
"scripts": {
"build": "coffee-build -v 1.11.x -b -o js src",
"postinstall": "npm run build"
}
}
공지 사항이 어떻게 -v 1.11.x
암시 업그레이드를 할 수 있습니다 정확한 버전이 아닙니다.
유일한 단점은 사용자가 npm install -g coffee-build
모듈을 설치하기 전에 해야한다는 것입니다.
이것이 최선의 방법인지는 확실하지 않지만 기술적으로 는 대부분 CoffeeScript로 패키지를 작성할 수 있습니다.
기본적으로 다음 coffee
과 같이 단순히 명령을 래핑하는 JS 파일을 작성할 수 있습니다 .
bin / howl.coffee
console.log 'Awwwooooo!'
bin / howl.js
#!/usr/bin/env node
var path = require('path');
var exec = require('child_process').exec;
var coffee = path.resolve(__dirname, '../node_modules/coffee-script/bin/coffee');
var howl = path.resolve(__dirname, './howl.coffee');
var command = coffee + ' ' + howl;
exec(command, function(error, stdout) {
if (error) { throw error };
console.log(stdout);
});
실행 중 node howl.js
(또는 단순히 howl
전역 적으로 설치되었을 때)은 이제 Awwooooo!
. require
다른 CoffeeScript 파일과 같은 작업을 수행 하고 JavaScript "래퍼"에서 CoffeeScript로 전달하여 인수에 액세스 할 수 있습니다 .
어쨌든, 이것을하지 않을 이유가 있을지도 모르지만, 그것은 지금까지 저에게 효과가 있었으므로 추가 관점을 위해 이것을 제출할 것이라고 생각했습니다.
이 기술을 사용하는 간단한 예제 프로젝트는 https://www.github.com/joshuabc/packdown을 확인 하십시오 .
참고 URL : https://stackoverflow.com/questions/13645824/can-i-write-npm-package-in-coffeescript
'IT박스' 카테고리의 다른 글
C ++의 main ()을 인라인 할 수없는 이유는 무엇입니까? (0) | 2020.11.06 |
---|---|
Chrome의 악성 파일 경고 우회 (0) | 2020.11.05 |
Go 언어로 다른 파일에서 함수를 호출하는 방법은 무엇입니까? (0) | 2020.11.05 |
Git에서 특정 태그로 되 돌리는 방법은 무엇입니까? (0) | 2020.11.05 |
Android 권한 : 전화 통화 : 전화 상태 및 ID 읽기 (0) | 2020.11.05 |