Javascript 优化器和把手客户端jade模板
我在尝试优化使用客户端jade模板的客户端脚本时遇到了一个问题。起初,我出现了中所述的错误,但随后我从路径配置中删除了“text”模块,将其添加到excludes中,并使text.js在本地可用。这样做之后,我得到一个错误,optmizer试图解析传递给文本模块的参数 以下是我的客户端模板:Javascript 优化器和把手客户端jade模板,javascript,requirejs,handlebars.js,optimization,Javascript,Requirejs,Handlebars.js,Optimization,我在尝试优化使用客户端jade模板的客户端脚本时遇到了一个问题。起初,我出现了中所述的错误,但随后我从路径配置中删除了“text”模块,将其添加到excludes中,并使text.js在本地可用。这样做之后,我得到一个错误,optmizer试图解析传递给文本模块的参数 以下是我的客户端模板: define([ 'Handlebars', 'text!/templates/product/something.jade' ], function(Handlebars, txtSomething) {
define([
'Handlebars',
'text!/templates/product/something.jade'
], function(Handlebars, txtSomething) {
var template = Handlebars.template,
templates = Handlebars.templates = Handlebars.templates || {};
templates['something'] = Handlebars.compile(txtSomething);
});
然后是优化器配置:
({
baseUrl: ".",
name: "product",
out: "product.js",
paths: {
Handlebars: "empty:"
},
exclude: ["text"]
})
我得到的错误是:
Error: ENOENT, no such file or directory 'C:\templates\product\something.jade'
In module tree:
product
modules/something
templates/something
text
关于如何解决此问题,有什么建议吗?在运行优化之前,我会预编译车把模板。这将删除文本引用此实现的一个注释-它位于express.js应用程序中,模板的路径配置如下:app.get(“/templates/product/:template”),function(req,res){res.render(“product/templates/”+req.params.template,{req:req})app.js中是否有视图配置(express)?如app.set('views','u dirname+/views');app.set('view engine','jade'));是的,这是在app.js中设置的。但是,当我运行优化器时,它不会在应用程序配置的上下文中运行。如果我将对视图的引用更改为“text!”。/../../../../../../../views/product/something.jade”,优化器将无错误地运行。但这会中断本地开发(IDE)配置,我需要使用基于URI的引用,而不是基于文件的引用。