Ответ 1
Вы можете просто сделать Ember.deprecate = function(){}
в своем файле application.js, и это должно отключить предупреждения об устаревании ember.
Я написал приложение, использующее Ember Data. Он передает все, что он тестирует и работает, как ожидалось, однако, что-то вызывает повторное предупреждение об отказе, которое нужно бросить в консоль.
Я хотел бы знать, как отключить эти предупреждения в Ember.
Вы можете просто сделать Ember.deprecate = function(){}
в своем файле application.js, и это должно отключить предупреждения об устаревании ember.
Всегда полезно учитывать отклонения, но если вы хотите просто отключить их, добавьте следующие 2 строки в ваш основной файл app.js.
Ember.deprecate = function(){};
Ember.warn = function(i){};
Мое предложение здесь, так что вы не будете полностью пропустить предупреждения об устаревании - они там по какой-то причине, верно?
Это упрощенные версии того, что будет делать deprecate
, но вход в DEBUG (чтобы вы могли легко их отфильтровать) и без stacktrace (для простоты). Они также не будут показывать повторяющиеся сообщения:
CoffeeScript
Ember.deprecate = (->
already_shown = []
(msg, test, opt)->
return false if test
if already_shown.indexOf(msg) == -1
warning = "DEPRECATION: #{msg}"
warning += " See: #{opt.url}" if opt.url
console.debug warning
already_shown.push msg
)()
JS
Ember.deprecate = (function() {
var already_shown = [];
return function (msg, test, opt) {
if (test) return false;
if (already_shown.indexOf(msg) === -1) {
var warning = 'DEPRECATION: ' + msg;
if (opt.url) {
warning += ' See: ' + opt.url;
}
console.debug(warning);
}
already_shown.push(msg);
};
})();
Модифицировано для версии Ember 2.3 (спасибо igorsantos07)
const alreadyShownFactory = () => {
let alreadyShown = [];
return (msg, test, opt) => {
if (test)
return false;
if( alreadyShown.indexOf(msg) === -1 ) {
let warning = 'DEPRECATION: ' + msg;
if(opt && opt.url) {
warning += ' See: ' + opt.url;
}
console.warn(warning);
alreadyShown.push(msg);
}
};
};
Ember.deprecate = alreadyShownFactory();
Ember.warn = alreadyShownFactory();
//see https://guides.emberjs.com/v2.3.0/configuring-ember/handling-deprecations/
Ember.Debug.registerDeprecationHandler((() => {
let alreadyShown = [];
return (message, options, next) => {
if(alreadyShown.indexOf(message) === -1) {
next(message, options);
alreadyShown.push(message);
}
};
})());
Для Ember 3.8 ниже у меня работал код в app/initializers/deprecation.js. Это отключает устаревание при выполнении тестов. Вы можете изменить в соответствии с вашими потребностями.
import { registerDeprecationHandler } from '@ember/debug';
import config from 'happyfox-web/config/environment';
export function initialize() {
registerDeprecationHandler((message, options, next) => {
if (config.environment === 'test') {
return;
} else {
next(message, options);
}
});
}
export default { initialize };
Взял это из документов
Если вы ищете это в Ember> = 2.0.0, вы должны изменить это в:
Ember.Logger.warn = () => {}
Ember.Logger.deprecate = () => {}