奇怪的节点js错误

时间:2014-01-24 12:41:48

标签: javascript node.js

我对节点js不太熟悉,但我被迫使用节点js在heroku上启动。

这一切都很顺利,可能要到几天前,但我不知道为什么会突然发出这么多错误。

Error: /app/index.jade:9
  7| meta(name='viewport', content='target-densitydpi=device-dpi, width=device-width, user-scalable=no, maximum-scale=1, minimum-scale=1')
  8| link(rel='stylesheet', href='/stylesheets/bootstrap.min.css', media='screen')
> 9| link(rel='stylesheet', href='stylesheets/jquery-ui.css', media='screen')   
 10| link(rel='stylesheet', href='stylesheets/jquery.pnotify.default.css', media='screen')
 11| link(rel='stylesheet', href='stylesheets/jquery.pnotify.default.icons.css', media='screen')
 12| link(rel='stylesheet', href='stylesheets/app.css', media='screen') 

 unexpected text at Object.Lexer.fail (/app/node_modules/jade/lib/lexer.js:804:11)
 at Object.Lexer.next (/app/node_modules/jade/lib/lexer.js:863:15)
 at Object.Lexer.lookahead (/app/node_modules/jade/lib/lexer.js:113:46)
 at Parser.lookahead (/app/node_modules/jade/lib/parser.js:111:23)
 at Parser.peek (/app/node_modules/jade/lib/parser.js:88:17)
 at Parser.tag (/app/node_modules/jade/lib/parser.js:704:22)
 at Parser.parseTag (/app/node_modules/jade/lib/parser.js:690:17)
 at Parser.parseExpr (/app/node_modules/jade/lib/parser.js:199:21)
 at Parser.block (/app/node_modules/jade/lib/parser.js:660:25)
 at Parser.tag (/app/node_modules/jade/lib/parser.js:777:26)

这是我的index.jade的内容

doctype html
html(lang="en")
  head
    meta(name='apple-mobile-web-app-capable', content='yes')
    meta(name='apple-mobile-web-app-status-bar-style', content='black')
    meta(name='viewport', content='target-densitydpi=device-dpi, width=device-width, user-scalable=no, maximum-scale=1, minimum-scale=1')
    link(rel='stylesheet', href='/stylesheets/bootstrap.min.css', media='screen')
    link(rel='stylesheet', href='stylesheets/jquery-ui.css', media='screen')  
    link(rel='stylesheet', href='stylesheets/jquery.pnotify.default.css', media='screen')
    link(rel='stylesheet', href='stylesheets/jquery.pnotify.default.icons.css', media='screen')

有任何关于它出错的建议吗?

1 个答案:

答案 0 :(得分:0)

尝试将您的Jade更改为

doctype html
html(lang="en")
  head
    meta(name='apple-mobile-web-app-capable', content='yes')
    meta(name='apple-mobile-web-app-status-bar-style', content='black')
    meta(name='viewport', content='target-densitydpi=device-dpi, width=device-width, user-scalable=no, maximum-scale=1, minimum-scale=1')
    link(rel='stylesheet', href='/stylesheets/bootstrap.min.css', media='screen')
    link(rel='stylesheet', href='/stylesheets/jquery-ui.css', media='screen')  
    link(rel='stylesheet', href='/stylesheets/jquery.pnotify.default.css', media='screen')
    link(rel='stylesheet', href='/stylesheets/jquery.pnotify.default.icons.css', media='screen')

正如@Max Leske在评论中所说,你正在混合相对和绝对路径。

不确定为什么会导致问题,但我觉得这不仅仅是巧合。

我很明白,我要求查看您的package.json的原因是因为最近有关于NPM的Jade更新导致您报告的问题:

https://github.com/visionmedia/jade/issues/1347

如果你有类似的话:

"jade" : "*"

在您的package.json中,基本上是指“安装最新版本”

因此,每次推送到heroku时,它都会将您的玉版更新为最新版本,从而引入任何重大更改。
我怀疑这是几天前发生的事情,导致这个错误(你推到了heroku,迫使更新了玉到最新版本)

最好在package.json文件中指定版本号以避免这种情况。