Javascript 如何在Jade模板中包含客户端脚本?
我正在使用jade生成一个静态网站,该网站名为grunt,我想从我的jade模板调用moment.js 我不知道该如何加载“时刻库” 报告说: 但我不确定异步加载如何与jade一起工作 所以我写了这段代码,它不编译:Javascript 如何在Jade模板中包含客户端脚本?,javascript,requirejs,pug,momentjs,Javascript,Requirejs,Pug,Momentjs,我正在使用jade生成一个静态网站,该网站名为grunt,我想从我的jade模板调用moment.js 我不知道该如何加载“时刻库” 报告说: 但我不确定异步加载如何与jade一起工作 所以我写了这段代码,它不编译: doctype html html(lang="en") head script(src='scripts/require.js') script. require.config({ paths: {
doctype html
html(lang="en")
head
script(src='scripts/require.js')
script.
require.config({
paths: {
"moment": "scripts/moment.js",
}
});
body
p #{moment(Date.now()).format('MM/DD/YYYY')}
出现以下错误:
>> TypeError: src/test.jade:7
>> 5| script.
>> 6| require.config({
>> > 7| paths: {
>> 8| "moment": "scripts/moment.js",
>> 9| }
>> 10| });
>>
>> undefined is not a function
我应该如何加载我的力矩对象,以便它可以用于Jade(模板和混合)?
注意,如果我用编译的p{Date.now()替换p{moment(Date.now()).format('MM/DD/YYYY')}行
诀窍是当grunt调用jade编译器生成最终的html文件时,使javascript可用 注意javascript的输出将静态复制到html文件中。javascript库是仅编译时(devDependency)依赖项 简单测试文件
doctype html
html(lang="en")
head
body
p #{moment(Date.now()).format('MM/DD/YYYY')}
p Hello guys !!
咕噜文件
module.exports = function(grunt){
...
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
...
moment = require ('moment') ;
grunt.registerTask( ...
...
包文件
{
"name": "site",
...
"devDependencies": {
...
"moment": "*"
},
"dependencies": {
...
}
}
感谢@ForbesLindesay的帮助
我不确定,但丹特小姐是主要嫌疑犯。Jade是模板引擎。所以你们必须按照Jade的方式来理解indent和其他人。我尝试了不同的缩进。但是没有用(我更新了我的问题)。此外,Jade不需要缩进javascript,对吗?我有个问题。您的jade文件包括requirejs,它称为momoentjs。顺便说一句,您的最后一个代码想要在模板->html瞬间将函数结果写入html吗?是的。我想在我问@ForbesLindesay的页面上写下即时通话的结果。他跟我说了格伦特的事@ForbesIndesay:需要在grunt配置中完成,以便将其作为本地文件传递给jade:
{moment:require('moment')}
{
"name": "site",
...
"devDependencies": {
...
"moment": "*"
},
"dependencies": {
...
}
}