reactjs - 我可以仅使用 webpack 将代码块标记为生产或开发吗?

标签 reactjs webpack

我正在构建 React 组件,为了使我的代码对开发人员更加友好,我添加了以下内容:

componentDidMount() {
  setTimeout(() => {
    if (!this.props.setupComplete) 
      console.warn("ComponentX might be stuck. This may mean you forget such and such.");
  }, setupCheckDelay);
}

这个想法是为了帮助开发人员更快地查明常见错误。有没有办法标记此代码以告诉 webpack 将其排除在生产构建之外?或者仅将其包含在开发版本中?例如,我想要这样的东西:

// build-hint-development-only
... my checking code
// end-build-hint

这样在生产版本中,代码就被完全省略了。我的目标是减少最终代码的大小(而不仅仅是避免执行)。

我用谷歌搜索了一下,但没有找到任何东西。我认为我可以使用动态导入+环境变量,然后重新安排代码,以便完成开发检查和包装器 HOC 或永远不会包含在开发构建中的东西,但这对于漂亮的东西来说似乎脆弱且复杂简单的。另一种选择是在 webpack 构建之前放置一个预处理器,该预处理器将复制没有标记的“仅限开发”部分的代码,但会向进程添加整个其他层。

最佳答案

webpack 将根据当前模式设置 process.env.NODE_ENV 变量。像这样使用它:

if (process.env.NODE_ENV === 'production') {
  // Code will only appear in production build.
}

if (process.env.NODE_ENV !== 'production') {
  // Code will be removed from production build.
  console.log("Looks like you're a developer.");
}

文档:webpack - Production

关于reactjs - 我可以仅使用 webpack 将代码块标记为生产或开发吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50997670/

相关文章:

reactjs - 使用 NextJS 和 next-routes,如何处理来自 server.js 和客户端的 404

javascript - GET请求后如何从html响应中获取数据

css - 如何在非 cli Angular 元素中使用全局 css?

javascript - 使用 SourceMap 解绑 webpack bundle.js

webpack - 升级到 vue-cli 3 后,HTML 中的空格消失了

javascript - 使用 VSCode 的更漂亮的 react/jsx-max-props-per-line 格式

reactjs - 警告 : React. createElement:类型不应为 null 或未定义

reactjs - 在 react-tabulator 列中正确显示 React 组件

ruby-on-rails - Rails Webpacker : rails-erb-loader failing parsing . html.erb

javascript - 如何使用 Webpack 将预处理的 CSS 作为字符串导入?