Sails.js-如何更改Sails使用的node.js模块?
我想编写自己的ejs本地节点模块,但我也希望sails使用我的,我不想更改sailsSails.js-如何更改Sails使用的node.js模块?,node.js,sails.js,Node.js,Sails.js,我想编写自己的ejs本地节点模块,但我也希望sails使用我的,我不想更改sailspackages.json 在sails加载了它的ejs locals模块之后,我如何加载我自己的模块来覆盖它 如果有合适的方法来做这类事情,我想知道:) 谢谢 我试图在官方文件中找到答案: 但这一点也不重要 编辑: 我试图在config/views.js中使用fn属性,但它没有按预期工作,我在这里举了一个例子: 最终编辑: 它适用于作为公认答案提出的解决方案,只需确保禁用布局,否则它将扰乱您的配置布局:fa
packages.json
在sails加载了它的ejs locals
模块之后,我如何加载我自己的模块来覆盖它
如果有合适的方法来做这类事情,我想知道:)
谢谢
我试图在官方文件中找到答案:
但这一点也不重要
编辑: 我试图在
config/views.js
中使用fn
属性,但它没有按预期工作,我在这里举了一个例子:
最终编辑:
它适用于作为公认答案提出的解决方案,只需确保禁用
布局
,否则它将扰乱您的配置<代码>布局:false尝试在config/views.js文件中配置您的视图引擎
...
ext : 'ejs',
fn: require('ejs-locals')
...
rigth配置为:
view: {
engine: {
ext: 'ejs',
fn: yourfunction
},
// need to disabe sails.js default partials feature for dont auto load sails ejs-locals
partial: false
}
您可以使用npm包络处理
然后编辑
npm shrinkwrap.json
并在sails部分,将ejs或ejs lorals指向您的版本这是使用sails 0.9吗?我想是0.10。我用一个.hbs引擎和sails 0.10测试了这个配置,但我不知道它是否适用于sails 0.9视图配置逻辑:在0.9
中似乎没有任何效果,我尝试了fn:“test”
来触发一个错误,它可以工作,所以我想这在0.10中是新的。感谢您的提示。它似乎不起作用,如果起作用,我不知道如何检查。它不起作用,sails仍在使用自己的ejs locals
。一个临时的解决方案是用我自己的node\u模块/sails/node\u模块/ejs局部变量
,效果很好。我只是一点也不喜欢。我已经尝试并更新了我的实验,但仍然不起作用。检查此拉动请求。。。这将解决问题你是对的,它确实有效。我理解,因为layout
被设置为true,然后Sails loadejs locals
本身,因为它假设我们使用ejs。但这是错误的。这里的核心是需要更改的内容,如果存在,应该加载我们的fn
。