Управляйте многословностью веб-пакетов при программном запуске службы Vue-Cli-Service. - PullRequest
1 голос
/ 20 сентября 2019

Я пытаюсь запустить vue-cli-service serve из приложения Node.js следующим образом:

const Service = require('@vue/cli-service');
const service = new Service(process.cwd());
service.init("development");
service.run('serve').then(({ server, url }) => {
  console.log("started server on " + url);
});

И это работает.

$ node e2e.js
INFO  Starting development server...
40% building 130/136 modules 6 active ...node_modules/eslint-loader/index.js??ref--13-0!.../ui/src/js/config/Product.js...
. . .
. . .
started server on http://localhost:8080/

Но когда я делаю это вВ режиме production (измените service.init("development") на service.init("production")), я больше не вижу прогресса в "сборке" веб-пакетов.

$ node e2e.js
INFO  Starting development server...
started server on http://localhost:8080/

Отсюда мой вопрос: как запустить сервер Vue в производственном режиме, но сохраняете прогресс веб-пакета в консоли?

1 Ответ

1 голос
/ 21 сентября 2019

О прогрессе сообщает Webpack ProgressPlugin, который Vue CLI вставляет только для непроизводственных и не тестовых сборок (начиная с 3.x).

Вы можете включить этот плагин в <root>/vue.config.js с devServer.progress=true (в настоящее время недокументировано ):

module.exports = {
  devServer: {
    progress: true  // always show progress (even in production mode)
  }
}

Или в вашем e2e.js вы можете вставитьProgressPlugin в Service экземплярах webpackChainFns[] после init():

service.init("production")
service.webpackChainFns.push(config => {
  config
    .plugin("progress")
    .use(require("webpack/lib/ProgressPlugin"))
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...