我在使用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/WebpackDevServerUtils
的createCompiler
的useYarn
相同。在捕捉器上,console.log
再次被替换为原来的。
这是一个建议,而不是生产构建的要求。
看起来你的编译很成功。