babel-plugin-transform-remove-dev.js
666 Bytes
/**
* Both used by zrender and echarts.
*/
module.exports = function ({types, template}, options) {
return {
visitor: {
IfStatement: {
exit(path) {
removeDEV(path);
}
}
}
};
};
module.exports.recheckDEV = function (code) {
let result = code.match(/.if\s*\([^()]*__DEV__/);
if (result
&& result[0].indexOf('`if') < 0
&& result[0].indexOf('if (typeof __DEV__') < 0
) {
throw new Error('__DEV__ is not removed.');
}
};
function removeDEV(path) {
if (path.node.test.name === '__DEV__') {
path.remove();
}
}