有没有办法在 sails.js 应用程序中跳过加载某些配置文件?
Is there a way to skip loading certain config files in sails.js app?
有没有办法将 .js 文件放在 sails.js /config 目录中并指示 sails 跳过它们?即提升时不会自动加载它们?
我想使用 sails.js config.custom 功能。但是,我的应用程序有大量自定义设置,所以我想将它们拆分成单独的文件(即 custom1.js、custom2.js 等)但是,我需要按特定顺序加载自定义设置,因为设置相互引用,因为在创建设置时正在执行的代码。
我的想法是使用 custom.js 文件根据需要加载我的设置模块,这样我就可以控制它的构建方式。也许做这样的事情:
let customSettings1 = require('./custom1.js');
let customSettings2 = require('./custom2.js');
let settings = {
cust1:customSettings1,
cust2:customSettings2
}
module.exports.custom = settings;
但是这种方法意味着我需要指示 sails.js 忽略我的子集自定义模块,因为 custom1.js 一旦存在于 /config 文件夹中就会自动加载。有办法吗?
没有。如果它们位于 config
文件夹或任何子文件夹中,它们将被加载。但是,将它们放入新文件夹后,您可以在 config/custom.js
逻辑中有条件地要求它们。
如果 sails 尚未足够唤醒(在配置加载期间)以适应您的逻辑,您可以随时设置配置变量:
sails.config.custom.test = 'wut';
console.log(sails.config.custom.test);
您无法阻止 Sails 加载某些文件,但仍有解决方案。
根据额外的研究和@nathanhawks 的回答,Sails.js 会自动加载 /config 文件夹和子文件夹中的任何 .js 文件...没有办法告诉 Sails 跳过任何内容。但是,它 将 跳过它无法识别的扩展,因此这提供了一个机会来继续使用 /config 文件夹但控制您正在加载的内容。这是我所做的:
/config/custom.js <- 这个文件有我加载所有自定义配置文件的逻辑
/config/custom/settings1.config <- 这是一个常规模块文件,只是用扩展名“.config”重命名并放在一个名为 "custom" 的子文件夹中。您可以根据需要将设置分成多个文件。因为 Sails.js 无法识别 .config,它会在配置文件的自动加载期间跳过。但是,它将加载您的主 custom.js 文件,您可以在此处自行加载 .config 文件。
在 custom.js 中你可以这样做:
let set1 = require('./custom/settings1.config');
let set2 = require('./custom/settings2.config');
let set3 = require('./custom/settings3.config');
let mySettings = {
mySettings1 : set1,
mySettings2 : set2,
mySettings3 : set3,
myFunction : function() {
// can add custom functions to your custom config object, like special getter/setters or anything else
}
}
module.exports = mySettings;
有没有办法将 .js 文件放在 sails.js /config 目录中并指示 sails 跳过它们?即提升时不会自动加载它们?
我想使用 sails.js config.custom 功能。但是,我的应用程序有大量自定义设置,所以我想将它们拆分成单独的文件(即 custom1.js、custom2.js 等)但是,我需要按特定顺序加载自定义设置,因为设置相互引用,因为在创建设置时正在执行的代码。
我的想法是使用 custom.js 文件根据需要加载我的设置模块,这样我就可以控制它的构建方式。也许做这样的事情:
let customSettings1 = require('./custom1.js');
let customSettings2 = require('./custom2.js');
let settings = {
cust1:customSettings1,
cust2:customSettings2
}
module.exports.custom = settings;
但是这种方法意味着我需要指示 sails.js 忽略我的子集自定义模块,因为 custom1.js 一旦存在于 /config 文件夹中就会自动加载。有办法吗?
没有。如果它们位于 config
文件夹或任何子文件夹中,它们将被加载。但是,将它们放入新文件夹后,您可以在 config/custom.js
逻辑中有条件地要求它们。
如果 sails 尚未足够唤醒(在配置加载期间)以适应您的逻辑,您可以随时设置配置变量:
sails.config.custom.test = 'wut';
console.log(sails.config.custom.test);
您无法阻止 Sails 加载某些文件,但仍有解决方案。
根据额外的研究和@nathanhawks 的回答,Sails.js 会自动加载 /config 文件夹和子文件夹中的任何 .js 文件...没有办法告诉 Sails 跳过任何内容。但是,它 将 跳过它无法识别的扩展,因此这提供了一个机会来继续使用 /config 文件夹但控制您正在加载的内容。这是我所做的:
/config/custom.js <- 这个文件有我加载所有自定义配置文件的逻辑
/config/custom/settings1.config <- 这是一个常规模块文件,只是用扩展名“.config”重命名并放在一个名为 "custom" 的子文件夹中。您可以根据需要将设置分成多个文件。因为 Sails.js 无法识别 .config,它会在配置文件的自动加载期间跳过。但是,它将加载您的主 custom.js 文件,您可以在此处自行加载 .config 文件。
在 custom.js 中你可以这样做:
let set1 = require('./custom/settings1.config');
let set2 = require('./custom/settings2.config');
let set3 = require('./custom/settings3.config');
let mySettings = {
mySettings1 : set1,
mySettings2 : set2,
mySettings3 : set3,
myFunction : function() {
// can add custom functions to your custom config object, like special getter/setters or anything else
}
}
module.exports = mySettings;