Node/WebpackDevServer/react-scripts,在启动时删除"To create a production build, use npm run build"消息



我在使用webpack和WebpackDevServer的javascript/rect应用程序上运行yarn start时遇到问题。在成功的汇编中,它显示了这一熟悉的信息;

Compiled successfully!
You can now view {project name} in the browser.
http://127.0.0.1:8000/
Note that the development build is not optimized.
To create a production build, use npm run build.

问题是npm run build不是必须用于生成生产构建的命令,因此这实际上给出了错误的指令,有什么方法可以删除或自定义此消息吗?

这是因为我的启动脚本在react dev-utils/WebpackDevServerUtils.js中使用了createCompiler,在这里,printInstructions函数在成功编译时打印它,请参阅此处。唯一可能的配置是将useYarn设置为true,这只是将命令替换为yarn build。所以我可以用不同的包装,也可以用叉子叉起来,两者都不理想。

对此,有点棘手的解决方法是覆盖console.log来捕获此消息,并将其替换为所需的消息,如下所示。

const originalConsoleLog = console.log
console.log = (args) => {
if (typeof args === 'string' && args.indexOf("To create a production build, use ") !== -1) {
let stringToReplace = `use ${chalk.cyan(`${useYarn ? 'yarn' : 'npm run'} build`)}`
args = args.replace(stringToReplace, {your instructions string here})
console.log = originalConsoleLog
}
args ? originalConsoleLog(args) : originalConsoleLog()
}

其中useYarn与传递给react-dev-utils/WebpackDevServerUtilscreateCompileruseYarn相同。在捕捉器上,console.log再次被替换为原来的。

这是一个建议,而不是生产构建的要求。

看起来你的编译很成功。

相关内容

  • 没有找到相关文章