以编程方式启动 vue-cli-service serve 时控制 webpack 的冗长程度
Control webpack verbosity when programmatically starting vue-cli-service serve
我正在尝试从 Node.js 应用程序内部 运行 vue-cli-service serve
,如下所示:
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")
)时,我看不到 webpack "building" 的进展了。
$ node e2e.js
INFO Starting development server...
started server on http://localhost:8080/
因此我的问题是:如何在生产模式下启动 Vue 服务器,但将 webpack 进度打印到控制台?
进度由 Webpack 的 ProgressPlugin
, which Vue CLI inserts only for non-production and non-test builds 报告(自 3.x)。
您可以在 <root>/vue.config.js
with devServer.progress=true
(currently undocumented 中启用此插件):
module.exports = {
devServer: {
progress: true // always show progress (even in production mode)
}
}
或者在您的 e2e.js
中,您可以将 ProgressPlugin
插入 Service
实例的 webpackChainFns[]
after init()
:
service.init("production")
service.webpackChainFns.push(config => {
config
.plugin("progress")
.use(require("webpack/lib/ProgressPlugin"))
})
我正在尝试从 Node.js 应用程序内部 运行 vue-cli-service serve
,如下所示:
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")
)时,我看不到 webpack "building" 的进展了。
$ node e2e.js
INFO Starting development server...
started server on http://localhost:8080/
因此我的问题是:如何在生产模式下启动 Vue 服务器,但将 webpack 进度打印到控制台?
进度由 Webpack 的 ProgressPlugin
, which Vue CLI inserts only for non-production and non-test builds 报告(自 3.x)。
您可以在 <root>/vue.config.js
with devServer.progress=true
(currently undocumented 中启用此插件):
module.exports = {
devServer: {
progress: true // always show progress (even in production mode)
}
}
或者在您的 e2e.js
中,您可以将 ProgressPlugin
插入 Service
实例的 webpackChainFns[]
after init()
:
service.init("production")
service.webpackChainFns.push(config => {
config
.plugin("progress")
.use(require("webpack/lib/ProgressPlugin"))
})