UNPKG

zoro-cli

Version:

https://github.com/vuejs/vue-cli

60 lines (49 loc) 1.62 kB
const webpack = require('webpack') const path = require('path') const { error } = require('zoro-cli-util/logger') const args = require('minimist')(process.argv.slice(2)) const Configurator = require('./Configurator') const formatStats = require('./formatStats') const { forEachPlugin } = require('./webpack.plugin') console.log('Starting build...') console.log('node version', process.versions.node) // 设置默认的 NODE_ENV if (!process.env.NODE_ENV) { process.env.NODE_ENV = 'production' } const configurator = new Configurator({ args }) const projectOptions = configurator.projectOptions let webpackConfig = {} if (projectOptions.target === 'app') { webpackConfig = configurator.resolveWebpackConfig() } else if (projectOptions.target === 'lib') { webpackConfig = require('./resolveLibConfig.js')({ configurator, options: projectOptions, args, }) } const config = Array.isArray(webpackConfig) ? webpackConfig[0] : webpackConfig const targetDir = config.output.path const targetDirShort = path.relative(configurator.context, targetDir) if (args.inspect || configurator.projectOptions.inspect) { require('./util/inspectWebpackConfig')(webpackConfig) } function applyBuildDonePlugins(obj) { forEachPlugin('build-done', apply => { apply({ ...obj }) }) } webpack(webpackConfig, (err, stats) => { // stopSpinner(false) if (err) throw err if (stats.hasErrors()) { error() error('Build failed with errors.') error() // Uncaught Fatal Exception process.exit(1) } applyBuildDonePlugins({ stats }) console.log(formatStats(stats, targetDirShort)) })