diff --git a/packages/@vue/cli-shared-utils/lib/_removeEmoji.js b/packages/@vue/cli-shared-utils/lib/_removeEmoji.js new file mode 100644 index 0000000000..1d9f0fa397 --- /dev/null +++ b/packages/@vue/cli-shared-utils/lib/_removeEmoji.js @@ -0,0 +1,12 @@ +const { replace } = require('node-emoji') + +module.exports = function (exports) { + Object.keys(exports).forEach(key => { + const func = exports[key] + exports[key] = (...args) => { + func( + ...args.map(arg => typeof arg === 'string' ? replace(arg, '') : arg) + ) + } + }) +} diff --git a/packages/@vue/cli-shared-utils/lib/logger.js b/packages/@vue/cli-shared-utils/lib/logger.js index a1b1fa8faf..ee88d210bf 100644 --- a/packages/@vue/cli-shared-utils/lib/logger.js +++ b/packages/@vue/cli-shared-utils/lib/logger.js @@ -70,3 +70,8 @@ exports.clearConsole = title => { if (process.env.VUE_CLI_TEST) { require('./_silence')('logs', exports) } + +// disable emojis in output +if (process.argv.includes('--no-emoji') || process.argv.includes('-N')) { + require('./_removeEmoji')(exports) +} diff --git a/packages/@vue/cli-shared-utils/lib/spinner.js b/packages/@vue/cli-shared-utils/lib/spinner.js index 7bc13d91fe..5e45374bda 100644 --- a/packages/@vue/cli-shared-utils/lib/spinner.js +++ b/packages/@vue/cli-shared-utils/lib/spinner.js @@ -47,3 +47,8 @@ exports.resumeSpinner = () => { if (process.env.VUE_CLI_TEST) { require('./_silence')('spinner', exports) } + +// disable emojis in output +if (process.argv.includes('--no-emoji') || process.argv.includes('-N')) { + require('./_removeEmoji')(exports) +} diff --git a/packages/@vue/cli-shared-utils/package.json b/packages/@vue/cli-shared-utils/package.json index 24f8a4d940..8d411ce3ad 100644 --- a/packages/@vue/cli-shared-utils/package.json +++ b/packages/@vue/cli-shared-utils/package.json @@ -22,6 +22,7 @@ "chalk": "^2.3.0", "execa": "^0.10.0", "joi": "^12.0.0", + "node-emoji": "^1.8.1", "node-ipc": "^9.1.1", "opn": "^5.2.0", "ora": "^1.3.0", diff --git a/packages/@vue/cli/bin/vue.js b/packages/@vue/cli/bin/vue.js index d9c5367deb..18421e77ec 100755 --- a/packages/@vue/cli/bin/vue.js +++ b/packages/@vue/cli/bin/vue.js @@ -116,6 +116,9 @@ program loadCommand('init', '@vue/cli-init') }) +program + .option('-N, --no-emoji', 'remove emoji from output') + // output help information on unknown commands program .arguments('')