我想编写自己的ejs-locals节点模块,但我也希望使用我的风帆,我不想更改风帆packages.json
。
如何在sails加载ejs-locals
模块后加载我自己的模块来覆盖它?
如果有正确的方法来做这种事情,我想知道:) 感谢。
我试图在那里的官方文档中找到答案:http://sailsjs.org/#/documentation/concepts/extending-sails
但是没有任何相关内容。
修改
我尝试使用fn
中的config/views.js
属性,但它没有按预期工作,我在这里做了一个例子:https://github.com/Vadorequest/sails-custom-ejs-locals
最终修改:
使用建议作为已接受答案的解决方案可以正常工作,只需确保禁用layout
,否则会破坏您的配置。 layout: false
答案 0 :(得分:1)
尝试在config / views.js文件中配置您的视图引擎。
...
ext : 'ejs',
fn: require('ejs-locals')
...
答案 1 :(得分:1)
正确的配置是:
view: {
engine: {
ext: 'ejs',
fn: yourfunction
},
// need to disabe sails.js default partials feature for dont auto load sails ejs-locals
partial: false
}
答案 2 :(得分:0)
您可以使用npm shrinkwrap。 https://docs.npmjs.com/cli/shrinkwrap
然后编辑npm-shrinkwrap.json
并在风帆部分中,将ejs或ejs-lorals指向您的版本