同步操作将从 百度开源/amis 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
const parse = require('@babel/parser').parse;const traverse = require('@babel/traverse').default;const generate = require('@babel/generator').default;const types = require('@babel/types');module.exports = function transformNodeEnvInline(file) {// if (file.subpath !== '/node_modules/mobx/lib/index.js') {// return;// }if (!file.isJsLike || !file.isMod) {return;}let contents = file.getContent();const idx = contents.indexOf('process.env.NODE_ENV');if (idx === -1) {return;}const idx2 = contents.indexOf('require(', idx);if (idx2 === -1) {return;}const env = file.optimizer ? 'production' : 'development';contents = contents.replace(/typeof\s+process\b/g, () =>JSON.stringify('object'));const ast = parse(contents, {sourceType: 'module'});traverse(ast, {// 参考: https://www.trickster.dev/post/javascript-ast-manipulation-with-babel-removing-unreachable-code/// 参考:https://github.com/babel/minify/blob/master/packages/babel-plugin-transform-node-env-inline/src/index.jsMemberExpression(path) {if (path.matchesPattern('process.env.NODE_ENV')) {path.replaceWith(types.valueToNode(env));let parentPath = path.parentPath;if (parentPath.isBinaryExpression()) {const evaluated = parentPath.evaluate();if (evaluated.confident) {parentPath.replaceWith(types.valueToNode(evaluated.value));}}let ifStatement = null;while (parentPath) {if (parentPath.isIfStatement() ||parentPath.isConditionalExpression()) {ifStatement = parentPath;}parentPath = parentPath.parentPath;}if (ifStatement) {let isTruthy = ifStatement.get('test').evaluateTruthy();const node = ifStatement.node;if (isTruthy) {if (types.isBlockStatement(node.consequent)) {ifStatement.replaceWithMultiple(node.consequent.body);} else {ifStatement.replaceWith(node.consequent);}} else if (node.alternate != null) {if (types.isBlockStatement(node.alternate)) {ifStatement.replaceWithMultiple(node.alternate.body);} else {ifStatement.replaceWith(node.alternate);}} else {ifStatement.remove();}}}}});contents = generate(ast, {}).code;file.setContent(contents);// console.log('\n', file.subpath, '\n', file.getContent());// process.exit(1);};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。