Sails.js - 如何更改sails使用的node.js模块?

时间:2014-08-22 16:30:08

标签: node.js sails.js

我想编写自己的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

3 个答案:

答案 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指向您的版本