2012-08-12 3 views
1

나는 coffescript를 배우기 시작했고, 간단한 혀를 내 보려고했다. 그러나 내 app.coffee 파일을 coffee app.coffee 명령을 사용하여 실행하려고하면이 예외가 계속 발생합니다.nodejs에서 coffeescript 앱을 실행할 수 없습니다.

PS C:\Users\Office\Workspace\node\blog-demo\coffeepress> coffee .\app.coffee 
Error: In .\app.coffee, Parse error on line 1: Unexpected ' ' 
    at Object.parseError (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\parser.js:477 
:11) 
    at Object.parse (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\parser.js:554:22) 
    at exports.compile.compile (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee- 
script.js:43:20) 
    at Object.exports.run (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-scrip 
t.js:79:34) 
    at compileScript (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:175:29 
) 
    at fs.stat.notSources.(anonymous function) (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffe 
e-script\command.js:150:18) 
    at fs.readFile (fs.js:176:14) 
    at Object.oncomplete (fs.js:297:15) 

커피 코드는;

### 
Module dependencies. 
### 
express = require("express") 
routes = require("./routes") 
http = require("http") 
path = require("path") 
app = express() 
app.configure -> 
    app.set "port", process.env.PORT or 3000 
    app.set "views", __dirname + "/views" 
    app.set "view engine", "jade" 
    app.use express.favicon() 
    app.use express.logger("dev") 
    app.use express.bodyParser() 
    app.use express.methodOverride() 
    app.use app.router 
    app.use express.static(path.join(__dirname, "public")) 

app.configure "development", -> 
    app.use express.errorHandler() 

app.get "/", routes.index 
http.createServer(app).listen app.get("port"), -> 
    console.log "Express server listening on port " + app.get("port") 

내 모든 모듈은 최신 날짜까지 사용 가능한 최신 모듈입니다.

+1

처음 세 줄을 제거해 보셨습니까? 주석은 파서를 깨뜨릴 수 있습니다. – arvidkahl

+0

그게 내가 제일 먼저 시도한거야. 또한 들여 쓰기 문제가 없는지 확인했습니다. –

+0

질문 아래에서 편집을 클릭하고 소스 코드를 복사하여 코드를 시도했습니다. 어쩌면 당신도 똑같이 시도 할 것입니다. 각 줄의 시작 부분에있는 처음 네 칸을 지우십시오. – vik

답변

2

귀하의 코드는 아무 문제가 없습니다. 그러나 Coffeescript는 static과 같은 키워드를 예약하므로 coffee -c your_file.coffee을 실행하면 컴파일 된 js가 your_file.js에 표시됩니다. 편집기로 열어서 무엇이 잘못되었는지 확인하십시오.

라인 app.use express.static(path.join(__dirname, "public"))app.use(express["static"](path.join(__dirname,"public"))과 같은 것으로 컴파일 될 것이라고 확신합니다. 그러면 오류가 발생합니다.)

향후 오류가 있으면 coffeescript를 먼저 컴파일 한 다음 컴파일 된 버전을보고 문제가 있는지 확인하십시오.

+0

. 이것은 오래된 질문이지만 제안 사항을 따르면 나를 위해이 문제를 해결했습니다. –

+0

동일한 문제가 발생하여 솔루션을 문서화했습니다. –

1

제공하지 않는 경로 파일을 제외하고 코드를 실행할 수 있습니다. 파일을 다시 만들고 실제 파일이 손상되었는지 확인하려고합니다. 나는 때로는 들여 쓰기에서 잘못된 형식의 Coffeescript 파일에 문제가있어 다른 것으로 불평합니다.

내가 의심하는 다른 것은 라우트 파일에 문제가있을 수 있다는 것입니다.

+0

아, 경로는 급행으로 작성되었습니다. 이것은 기본 익스프레스 부트 스트랩입니다. 나는 처음으로 데모 프로젝트를 실행했다. js2coffee를 사용하여 모든 js 파일을 커피로 변환했습니다. 덕분에 –

관련 문제