作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 jade 生成一个编写为 grunt 的静态网站,并且我想从我的 jade 模板中调用 moment.js。
我不知道应该如何加载时刻库。
require.config({
paths: {
"moment": "path/to/moment",
}
});
define(["moment"], function (moment) {
moment().format();
});
但我不确定异步加载如何与 Jade 一起工作。
所以我编写了这段无法编译的代码:
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
我应该如何加载我的 moment 对象以便可以在 Jade 中使用它(模板和 mixins)?
Note if I replace the line p #{moment(Date.now()).format('MM/DD/YYYY')} with p #{Date.now()} it compiles.
最佳答案
诀窍是让你的javascript在grunt调用jade编译器生成最终的html文件时可用
Note the ouput of the javascript will be statically copied into the html file. The javascript library is a compile time (devDependency) only dependency.
简单的测试文件
doctype html
html(lang="en")
head
body
p #{moment(Date.now()).format('MM/DD/YYYY')}
p Hello guys !!
Grunt 文件
module.exports = function(grunt){
...
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
...
moment = require ('moment') ;
grunt.registerTask( ...
...
打包文件
{
"name": "site",
...
"devDependencies": {
...
"moment": "*"
},
"dependencies": {
...
}
}
Thanks to @ForbesLindesay for his help
关于javascript - 如何在 Jade 模板中包含客户端脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057299/
我是一名优秀的程序员,十分优秀!