Вы окончательно не должны хранить их в продукции окружающей среды.
Если вы немного рекламируете Google, существует множество альтернативных подходов к их изъятию.
Лично я использовал шаблон null object
, выполнив два обертки в отдельном файле: первый сопоставляет свой метод непосредственно с тем, который был экспортирован модулем assert
, последний предлагает пустые функции и ничего более.
Таким образом, во время выполнения вы можете подключить правый, полагаясь на некоторую глобальную переменную, предварительно установленную правильно, например process.env.mode
. В ваших файлах вам нужно будет только импортировать вышеупомянутый модуль и использовать его вместо прямого использования assert
.
Таким образом, вокруг вашего кода вы никогда не увидите, как подвержен ошибкам материал, такой как myAssert && myAssert(cond)
, вместо этого у вас будет когда-либо более чистый и безопасный оператор myAssert(cond)
.
Отсюда следует краткий пример:
// myassert.js
var assert = require('assert');
if('production' === process.env.mode) {
var nil = function() { };
module.exports = {
equal = nil;
notEqual = nil;
// all the other functions
};
} else {
// a wrapper like that one helps in not polluting the exported object
module.exports = {
equal = function(actual, expected, message) {
assert.equal(actual, expected, message);
},
notEqual = function(actual, expected, message) {
assert.notEqual(actual, expected, message);
},
// all the other functions
}
}
// another_file.js
var assert = require('path_to_myassert/myassert');
// ... your code
assert(true, false);
// ... go on
Как вы пришли к такому выводу, когда большинство из ответов ссылки вы упомянули сказать да? –