2012-01-18 2 views

답변

8

src 폴더에 CoffeeScript 코드를 넣고 컴파일 된 JavaScript 코드를 lib 폴더에 넣으십시오.

package.json 파일에서 mainlib 폴더의 js 파일로 선언하십시오. 그런 다음 패키지 사용자는 커피 파일 대신 js 파일을 필요로합니다.

@ TrevorBurnham의 repository을 예로들 수 있습니다.

+0

그것은 종류의 컴파일 된 코드를 저지르고 이상한 느낌,하지만 난 그것을 시도거야 같아요. –

+1

자식 저장소가 npm에 연결되어 있습니까? 왜냐하면 그렇지 않다면 lib 디렉토리를 생성 한 후 npm을 게시하고 삭제하기 만하면되기 때문입니다. –

+1

@MarcelM. 그렇지 않습니다. BTW, .gitignore를 사용하여'lib' 폴더를 지우지 않고 무시할 수 있습니다. – qiao

8

내 자식 저장소에 src 폴더 만 남았습니다. 파일 lib에 대한 .gitignore 줄; 비어있는 .npmignore 파일이 있습니다. .npmignore 파일이 필요합니다. 모듈에 없으면 .gitignore이 대신 사용되기 때문입니다.

난 그냥 테스트 및 게시하기 전에 구축 package.jsoncoffee --compile --output lib/ src/pretestprepublish 작업을 사용하여 내 src 디렉토리를 구축하는 작업으로 Cakefile을 추가했습니다.

"scripts": { "pretest": "cake build", "prepublish": "cake build", }

이 솔루션은 깨끗한 (컴파일 된 코드없이) 내 자식 저장소를 유지하지만 NPM에 게시하는 경우에서는 lib 내 자바 스크립트 코드를 추가합니다.

+2

https://github.com/reaktivo/zootool에서 확인할 수 있습니다 –

+0

참고 :이 기능은 "npm install reaktivo/zootool"에서는 작동하지 않습니다. 누군가가 당신의 repo를 갈라 놓고 당신이 그들의 패치를 기다리고 있다면 비슷한 것을하고 싶어 할 것입니다. –

1

난 그냥 커피 스크립트와 함께 시작 해요,하지만 난 다음 좋을 것 :

  1. 스토어 src/*.coffee에 커피 스크립트 코드,
  2. 는 NPM이 잡을 것 프로젝트의 루트에 main.js 쓰기를하고 단순히 require('coffee-script'); require('./src/my_lib.coffee')과 같은 일을하십시오.

있습니다. 결코 코드를 컴파일하지 마십시오. 모든 것이 투명하게 처리됩니다. 컴파일 된 코드를 git으로 검사하지 않고, 컴파일되지 않은 JavaScript를 컴파일되지 않은 CoffeeScript와 함께 NPM에 게시하지 않습니다.

편집 : 최신 버전의 커피 scirpt에서, 당신이해야 require('coffee-script/register');

+2

'커피 스크립트'를 개발하지 않는 모듈에 대한 요구 사항을 만드는 것이 가장 좋은 생각은 아닙니다. –

+0

위의 설명을 이해할 수 있을지 확신하지 못합니다. '커피 스크립트'가 의존성으로 '밑줄'을 갖는 것과 다른 점은 무엇입니까? – lambinator

+0

밑줄은 라이브러리이지만 CoffeeScript는 컴파일 된 언어입니다. 런타임에는 라이브러리의 기능이 필요합니다. 컴파일 된 언어로 당신은 (필연적으로)하지 않습니다. 결과 코드 만 있으면됩니다. (해석 된 언어라면 런타임에 기능이 필요할 것입니다.) – 1j01

관련 문제