我刚刚更新了我的快递版本2,以便为我的网络应用程序表达3。我突然开始收到许多奇怪的语法错误。
最初我认为布局结构发生了一些变化,因为我遇到了这样的错误:
SyntaxError: views/fragments/menu_items_admin.jade:1
> 1| extends ../layout_tools
2|
3| block menu_items
4| include ../fragments/menu_items_admin
Unexpected identifier
at Function (<anonymous>)
at assertExpression (node_modules/jade/lib/lexer.js:39:3)
at Object.Lexer.attrs (node_modules/jade/lib/lexer.js:593:20)
但布局仍然有效。
另一个错误:
SyntaxError: views/fragments/admin/works.jade:12
10| script(src='/js/#{SOURCES["jquery.tags.js"]}')
11| script(src='/js/#{SOURCES["wh.js"]}')
> 12| if CONFIG.dev
13| script(src='/js/external/typeahead.js')
14| else
15| script(src='/js/external/typeahead.min.js')
Unexpected identifier
at Function (<anonymous>)
at assertExpression (node_modules/jade/lib/lexer.js:39:3)
...
它还能做什么?有些布局有效,有些则没有。显示的错误主要在include
表达式。
答案 0 :(得分:1)
我想在jade部分添加,'
和"
必须在以下表达式中交替:
a(hreh="/dynamic/#{'link'}")
在使用表达2的玉的版本中,仅使用'
或仅使用"
就可以了。
我看到的另一个变化是在jade模板中声明的变量范围发生了一些变化:
假设您将以下数据上下文提供给render
函数:
{
categories: [ ... ]
}
和一个玉文件:
div
for category in categories
a(href='#') #{category.name}
div
include child
和child
玉
categories = categories || []
for category in categories
span #{category.name}
在主玉文件中categories
现在是undefined
,快递2使用的版本是给定的数组。这会引发错误:
> 21| for category in categories
22| a(href='#') #{category.name}
Cannot read property 'length' of undefined
at jade.debug.unshift.lineno (eval at <anonymous> (node_modules/jade/lib/jade.js:152:8), <anonymous>:1052:31)
答案 1 :(得分:0)
在任何script
或style
代码上,请务必将其更改为script.
和style.
根据Jade的更新,你必须这样做。我在使用Google Analytics代码时遇到问题,直到我在Git repo上阅读
示例:
script.
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-11111111-1', 'yourdomain.com');
ga('send', 'pageview');