node.js에 JS 대신 CoffeeScript를 사용할 수 있습니까?


189

node.js를 코딩하고 CoffeeScript를 사용하려는 경우 제한 사항은 무엇입니까? JS에서 할 수있는 일을 할 수 있습니까?

답변:


175

예, CoffeeScript는 단순히 순수 JS로 컴파일되어 node.js와 완벽하게 호환됩니다.

노드에서 CoffeeScript를 실행하려면 다음 중 하나를 수행하십시오.

  • coffee -c example.coffee컴파일 할 유형 을 입력 한 다음 node example.js컴파일 된 JS를 실행하십시오.
  • 간단히 입력 coffee example.coffee

2
그러나 다른 CoffeeScript 파일을 사용하는 경우는 어떻습니까? 1 CoffeeScript
Jiew Meng

3
@Jiew Meng 동일한 방법으로 전체 디렉토리를 컴파일하거나 (example.coffee를 디렉토리 경로로 대체) 미리 require컴파일 된 커피 스크립트 파일을 언 컴파일 할 수 있습니다 require('coffee-script').
David Tang

1
coffee example.coffee주로 개발을 위해 실행되고 있습니까? 아니면 생산에서 할만 큼 안정적입니까?
mrmagooey 2016 년

4
네, 두 선택의 차이점은 무엇입니까?
Steve Bennett

4
커피 설치sudo npm install -g coffee-script
드미트리 Polushkin

89

노드에서 CoffeeScript 파일을 직접 실행할 수있을뿐만 아니라

coffee source.coffee

마치 JavaScript 파일 인 것처럼 요구할 수도 있습니다. 예를 들어, lib.coffee디렉토리에 있다면

require './lib'

같은 디렉토리에있는 다른 CoffeeScript 파일에서 (JavaScript 파일에서이 작업을 수행 require 'coffee-script'하려면 맨 위에 추가 해야합니다.) 따라서 배포 할 프로젝트를 npm과 같은 도구로 패키징하지 않는 한 Node에서 명시 적으로 컴파일 할 필요가 없습니다.

한 가지주의 사항 : 스택 추적에서 CoffeeScript를 직접 실행하는 경우에도 표시되는 줄 번호는 컴파일 된 JavaScript를 나타냅니다 (따라서 JavaScript에 액세스 할 수 없음). 많은 사람들이이 문제를 해결하려고하지만 큰 도전입니다.


1
클라이언트 측 커피 / js는 어떻게됩니까?
멋진

고객 측은 HTML 페이지에 포함해야하는 광고 통역사가 필요합니다.
Daniele Vrut

1
@fancy, coffescript> 1.6.1 은 소스 맵을 지원합니다
MegaTux

1
내가 알 수있는 한 JS에서 커피와 커피를 상관시키지 않으면 디버깅 할 수 없습니다.
Eric

1
Coffeescript에서 JS 로의 변환 규칙은 매우 간단합니다. 모두 잘 기록되어 있습니다. :)
Kedare

57

예, 여기에 다른 간단한 질문이 있습니다. 2 단계를 수행해야합니다.

  1. npm install coffee-script --save # I assume you would have done this already.

  2. 가지고 require('coffee-script')실행 얻을 것이다 첫 번째 줄 server.jsapp.js. ( 업데이트 : 커피 스크립트 1.7 이후로해야합니다.require('coffee-script/register'))

이렇게하면 coffeescript 컴파일러가 앱에 등록되고 이제 커피 파일과 js 파일을 동일하게 처리 할 수 ​​있습니다 (커피 파일도 필요할 수 있음을 의미합니다).

이 방법을 사용하려면 바닐라 자바 ​​스크립트로 하나의 파일 (app.js) 만 작성하면됩니다. 그러나 배포 환경에는 앱을 실행하기 위해 초기 전역 설치 종속성으로 커피 스크립트가 필요하지 않다는 장점이 있습니다. 이 경우 코드를 복사하고 npm install필요한 모든 패키지를 설치하면됩니다. 그리고 npm start당신은 일을하고 실행


2
1.7 업데이트 @gprasant에 대한 메모에 감사드립니다. 왜 이것이 작동하지 않는지 궁금해했습니다.
pix0r

15

비디오 자습서

Pedro Teixeira 의 훌륭한 튜토리얼 시리즈를 보았습니다 . 그는 노드 튜토리얼에 대한 전체 시리즈를 구축하고 있습니다. 그는 편집 된 .coffee 파일의 자동 감지 및 컴파일 및 재로드를위한 nodemon에 대한 참조를 포함합니다.

  1. Coffeescript와 Node.js
  2. 노드 몬

위 의 nodetuts.com 링크가 손상되었습니다. 그 사이트의 튜토리얼은 훌륭하게 보입니다.
ekillaby

감사합니다. 원래 링크 목적지가 사라지거나 이동되었습니다. 검색을 구글 무엇에 설정은 비 메오 동영상 @countfloortiles 밝혀
마크 ESSEL에게

3
훌륭한 NodeJS 데몬 / 자산 파이프 라인 솔루션 은 brunch.io 를 참조하십시오 . 커피, CSS 수퍼 셋 등을 다룹니다.
Lincoln B

이 점을 잠시 발견했지만 이후로는 방문하지 않았습니다. 그것을 가져 주셔서 감사합니다
Mark Essel

11

CoffeeScript를위한 간단한 연속 컴파일 인 Jitter 를 사용할 수 있습니다 .

npm install -g jitter

coffee 디렉토리에 많은 * .coffee 파일이 있고 js 디렉토리로 컴파일하려고한다고 가정 해 봅시다. 그런 다음 다음을 실행하십시오.

jitter coffee js

지터는 종료 될 때까지 백그라운드에서 실행되며 (Ctrl + C) 새로운 변경 사항을 감시합니다.



6

이 시도

#!/usr/bin/env coffee
v = 78
console.log "The value of v is '#{v}'"

그런 다음 수행하십시오.

chmod +x demo.coffee
./demo.coffee

CoffeeScript는 노드와 매우 견고하게 통합되어 있습니다. '커피 스크립트'모듈을로드 require('coffee-script')한 경우 위의 데모를 통해 실행하거나 coffee demo.coffee로드 한 후 실행 하면로드 할 수 있습니다 require('./foo').foo.coffee


고마워, 그것은 매우 유용합니다!
Mike Ellis

0

javascript로 변경할 때마다 모든 커피 스크립트 파일 (subdir을 포함하는 하나의 디렉토리에 있음)을 자동으로 컴파일하려면 다음 명령을 사용하십시오.

find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc

6
내장 된 커피 스크립트 기능에 어떤 문제가 있습니까? coffee -o lib/ -cw src/
aaaidan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.