繁体   English   中英

为什么在使用 babel-loader 时要排除 node_modules?

[英]Why would we exclude node_modules when using babel-loader?

在网站上问的大部分问题是如何排除node_modules但相反,我想知道为什么我们要排除node_modules

module.exports = {
  mode: 'production',
  entry: './src/index.js',
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'app.bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        options: {
          presets: ['@babel/preset-env']
        }
      }
    ]
  }
};

任何人都可以向我解释排除node_modules背后的原因吗?

简而言之,转译是一个昂贵的过程,许多项目在 babel 中导入了数千(如果不是数十万)行代码,需要运行。 您的node_modules应该已经可以运行而无需如上所述进行转译,并且有一些简单的方法可以排除您的node_modules但转译任何需要它的代码。 请参阅https://github.com/babel/babel-loader/issues/171

我已经看到很多关于是否应该由开发人员承担转换库的应用程序工作或库开发人员的责任的争论。 大多数情况下,转译是为了浏览器支持而完成的,库创建者不知道您需要支持哪些浏览器,因此他们最终要么转译,要么不转译,将它留在您的手中。 如果它们转译为 ES5,你就是黄金,否则通常是一个足够简单的任务来找出哪些库导致了问题并自己转译它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM