코드를 쓸 때 노드 모듈을 개발할 때 권장되는 방법이 있지만 모듈 사용자가 coffee-script
모듈을 필요로하지 않도록하려면 어떻게해야합니까?Coffeescript를 사용하여 노드 모듈을 개발하는 표준 방법은 무엇입니까?
답변
src
폴더에 CoffeeScript 코드를 넣고 컴파일 된 JavaScript 코드를 lib
폴더에 넣으십시오.
package.json
파일에서 main
을 lib
폴더의 js 파일로 선언하십시오. 그런 다음 패키지 사용자는 커피 파일 대신 js 파일을 필요로합니다.
@ TrevorBurnham의 repository을 예로들 수 있습니다.
내 자식 저장소에 src
폴더 만 남았습니다. 파일 lib
에 대한 .gitignore
줄; 비어있는 .npmignore
파일이 있습니다. .npmignore
파일이 필요합니다. 모듈에 없으면 .gitignore
이 대신 사용되기 때문입니다.
난 그냥 테스트 및 게시하기 전에 구축 package.json
에 coffee --compile --output lib/ src/
과 pretest
및 prepublish
작업을 사용하여 내 src
디렉토리를 구축하는 작업으로 Cakefile
을 추가했습니다.
"scripts": { "pretest": "cake build", "prepublish": "cake build", }
이 솔루션은 깨끗한 (컴파일 된 코드없이) 내 자식 저장소를 유지하지만 NPM에 게시하는 경우에서는 lib 내 자바 스크립트 코드를 추가합니다.
https://github.com/reaktivo/zootool에서 확인할 수 있습니다 –
참고 :이 기능은 "npm install reaktivo/zootool"에서는 작동하지 않습니다. 누군가가 당신의 repo를 갈라 놓고 당신이 그들의 패치를 기다리고 있다면 비슷한 것을하고 싶어 할 것입니다. –
난 그냥 커피 스크립트와 함께 시작 해요,하지만 난 다음 좋을 것 :
이- 스토어
src/*.coffee
에 커피 스크립트 코드, - 는 NPM이 잡을 것 프로젝트의 루트에
main.js
쓰기를하고 단순히require('coffee-script'); require('./src/my_lib.coffee')
과 같은 일을하십시오.
있습니다. 결코 코드를 컴파일하지 마십시오. 모든 것이 투명하게 처리됩니다. 컴파일 된 코드를 git으로 검사하지 않고, 컴파일되지 않은 JavaScript를 컴파일되지 않은 CoffeeScript와 함께 NPM에 게시하지 않습니다.
편집 : 최신 버전의 커피 scirpt에서, 당신이해야 require('coffee-script/register');
'커피 스크립트'를 개발하지 않는 모듈에 대한 요구 사항을 만드는 것이 가장 좋은 생각은 아닙니다. –
위의 설명을 이해할 수 있을지 확신하지 못합니다. '커피 스크립트'가 의존성으로 '밑줄'을 갖는 것과 다른 점은 무엇입니까? – lambinator
밑줄은 라이브러리이지만 CoffeeScript는 컴파일 된 언어입니다. 런타임에는 라이브러리의 기능이 필요합니다. 컴파일 된 언어로 당신은 (필연적으로)하지 않습니다. 결과 코드 만 있으면됩니다. (해석 된 언어라면 런타임에 기능이 필요할 것입니다.) – 1j01
- 1. 노드 외부에서 노드 모듈을 사용하는 방법은 무엇입니까?
- 2. 웹 모듈을 개발하는 방법
- 3. 노드 프로젝트에 coffeescript를 병합 하시겠습니까?
- 4. Python 표준 라이브러리의 모듈을 로컬 디렉토리에 설치하는 표준 방법은 무엇입니까?
- 5. 소스의 상위 디렉토리에 coffeescript를 컴파일하는 방법은 무엇입니까?
- 6. Coffeescript를 구성하고 @ 키워드를 사용하여
- 7. DesignData를 사용하여 Metro 앱을 개발하는 방법은 무엇입니까?
- 8. 티타늄을 사용하여 아이폰 애플리케이션을 개발하는 방법은 무엇입니까?
- 9. Vista에서 WIA 1을 사용하여 개발하는 방법은 무엇입니까?
- 10. phonegap을 사용하여 iphone 앱을 개발하는 방법은 무엇입니까?
- 11. 파이썬 모듈을 해제하기위한 표준 패턴은 무엇입니까
- 12. Drupal 7에서 모듈을 사용하여 모듈을 설치하는 방법은 무엇입니까?
- 13. 서비스 모듈을 사용하여 Drupal Commerce에서 제품 가격을 얻는 방법은 무엇입니까?
- 14. dependency.yml을 사용하여 로컬 모듈을 참조하는 방법은 무엇입니까?
- 15. RPM을 사용하여 커널 모듈을 배포하는 방법은 무엇입니까?
- 16. VB.net을 사용하여 웹 모듈을 만드는 방법은 무엇입니까?
- 17. 낙서 패드를 개발하는 방법은 무엇입니까?
- 18. 축전지 코드를 개발하는 방법은 무엇입니까?
- 19. 노키아 폰을 개발하는 방법은 무엇입니까?
- 20. HG의 지점에서 개발하는 방법은 무엇입니까?
- 21. UI를 쉽게 개발하는 방법은 무엇입니까?
- 22. GWT 위젯을 개발하는 방법은 무엇입니까?
- 23. Python을 사용하여 표준 표준 레코드의 시간대 차이를 처리하는 방법은 무엇입니까?
- 24. 표준 장식을 사용하여 '오류'를 장식하는 방법은 무엇입니까?
- 25. 노드 대기열에 광택 캐시를 지우는 방법은 무엇입니까?
- 26. Windows에서 모듈을 작성하는 방법은 무엇입니까?
- 27. Drupal : 노드 초대 모듈을 사용하여 이메일 메시지의 형식을 지정하는 방법은 무엇입니까?
- 28. Zend_Application에서 모듈을 사용하는 방법은 무엇입니까?
- 29. CoffeeScript를 사용하여 개체에 키가 있는지 확인하는 가장 간단한 방법
- 30. 프로세스 모듈을 열거하는 방법은 무엇입니까?
그것은 종류의 컴파일 된 코드를 저지르고 이상한 느낌,하지만 난 그것을 시도거야 같아요. –
자식 저장소가 npm에 연결되어 있습니까? 왜냐하면 그렇지 않다면 lib 디렉토리를 생성 한 후 npm을 게시하고 삭제하기 만하면되기 때문입니다. –
@MarcelM. 그렇지 않습니다. BTW, .gitignore를 사용하여'lib' 폴더를 지우지 않고 무시할 수 있습니다. – qiao