如何在 Jade 模板中包含客户端脚本
How to include client-side script in Jade template?
我正在使用 jade 生成一个静态网站,从我的 jade 模板中编写咕噜声,我想调用 moment.js。
我不知道我应该如何加载时刻库。
官方文件说:
require.config({
paths: {
"moment": "path/to/moment",
}
});
define(["moment"], function (moment) {
moment().format();
});
但我不确定异步加载如何与玉石一起工作。
所以我写了这段不编译的代码:
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 #{moment(Date.now()).format('MM/DD/YYYY')} 替换为 p #{Date.now()},它就会编译。
诀窍是在 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的帮助
相关文章:
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 'io未定义'在客户端上.在HTML中包含socket.io脚本标记
- 如何生成一个唯一的链接,该链接将加载一个会话,其中包含客户端可用的某些文档
- 如何在 Jade 模板中包含客户端脚本
- 我可以使用/包含 HTML 部分,客户端,使用 EJS(或类似)
- 在客户端上从 Meteor.call 获取未定义,但在服务器上变量包含数据
- 如何使用 $.parseXML 在客户端上分析包含属性的 xml 字符串
- Android原生应用程序:无法滚动浏览包含大约200个元素的整个列表(appium java客户端)
- JSPM-使用import和使用script标记包含客户端库文件有什么优点/缺点吗
- 客户端html页面,其中包含提交时持续存在的Javascript表单数据
- 如何在Meteor包中包含JavaScript,使其's未在客户端中转换
- 我应该如何编写一个同时包含服务器端和客户端代码的node.js web应用程序
- 为客户端MVC验证包含.js文件的正确顺序
- 如何在javascript/jquery中使用客户端包含
- ASP.NET MVC 返回文件结果,其中包含要在客户端处理的其他数据
- 本地客户端包含的外部 html 文件未显示
- 在Angularjs客户端解压缩一个包含文件的文件夹作为内容
- 在客户端中包含jquery-ui-browserify
- AngularJS使用路由参数进行客户端包含的方式是什么