首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >webpack加载器和包括

webpack加载器和包括
EN

Stack Overflow用户
提问于 2016-01-06 07:39:12
回答 3查看 71K关注 0票数 38

我是新手,我正在尝试理解加载器以及它的属性,如测试,加载器,包含等。

这是我在谷歌上找到的webpack.config.js的样本片段。

代码语言:javascript
复制
module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: [
          path.resolve(__dirname, 'index.js'),
          path.resolve(__dirname, 'config.js'),
          path.resolve(__dirname, 'lib'),
          path.resolve(__dirname, 'app'),
          path.resolve(__dirname, 'src')
        ],
        exclude: [
          path.resolve(__dirname, 'test', 'test.build.js')
        ],
        cacheDirectory: true,
        query: {
          presets: ['es2015']
        }
      },
    ]
}

  • :/.js$/将仅用于扩展名为.js的文件?

  • .js:'babel- loader ',是我们使用npm

  • 安装的加载程序吗?我对此有很多疑问。我们放入数组中的任何东西都会被转储,我说的对吗?这意味着,index.js,config.js,以及lib,app和src中的所有*.js文件都将是包含的问题:当文件被转换时,*.js文件是否被连接成一个大文件?

  • 我认为排除是不言自明的。它不会得到预设查询:{ transpiled.

  • What:'es2015‘} do?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-19 02:36:45

在webpack的配置中有多项配置,重要的有

  1. entry -可以是数组,也可以是定义要捆绑的资产的入口点的对象,也可以是js,因为这里的测试说明只对/.js$执行此操作。如果您的应用程序有多个入口点,请使用数组。loader.
  2. exclude包含-定义导入文件将由places).
  3. output转换的路径或文件集不言而喻(请勿转换来自这些

的文件-您想要创建的最终

  1. 。如果您指定例如

输出:{文件名:"name.bundle.js",供应商:"react“}

然后,您的应用程序js文件将被捆绑为main.bundle.js,并在vendor.js文件中进行反应。如果在html页中不同时使用这两种方法,则是错误的。

希望能有所帮助

票数 21
EN

Stack Overflow用户

发布于 2017-10-28 00:16:44

这些文档帮助我更好地理解。看起来这是针对webpack 1的,但仍然适用。

https://webpack.github.io/docs/configuration.html#module-loaders

加载器

自动应用的加载器数组。

每个项目都可以具有以下属性:

  • test:必须为met
  • exclude:的条件
  • include:不能满足的条件对于路径或文件数组,其中导入的文件将由加载器进行转换
  • loader:字符串“!”separated loaders
  • loaders: a array of loaders as string

(字符串分离的加载器将加载器的数组命名为string)

这个例子帮助我理解了到底是怎么回事。看起来您可以使用include或exclude,但不能同时使用两者。测试是应用于所有文件的条件。因此,如果包含文件夹,则每个文件都必须通过测试条件。我没有验证这一点,但根据文档提供的示例,它看起来是如何工作的。

代码语言:javascript
复制
    module: {

      rules: [
        {
          // "test" is commonly used to match the file extension
          test: /\.jsx$/,

          // "include" is commonly used to match the directories
          include: [
            path.resolve(__dirname, "app/src"),
            path.resolve(__dirname, "app/test")
          ],
          // "exclude" should be used to exclude exceptions
          // try to prefer "include" when possible

          // the "loader"
          loader: "babel-loader" // or "babel" because webpack adds the '-loader' automatically
        }
      ]

    }
票数 8
EN

Stack Overflow用户

发布于 2016-01-06 07:49:36

1)正确。

2)正确。

3)正确。

4)我不确定。我的webpack.config.js文件包含一个输出键,并将其全部打包到一个文件中:

代码语言:javascript
复制
output: {
    path: path.resolve(__dirname, 'build'),
    filename: 'bundle.js'
}

5)正确。

6)这将告诉babel-loader您希望它执行哪种类型的转换,以及其他编译选项。因此,例如,如果您希望它也传输jsx +缓存结果以提高性能,您可以将其更改为:

代码语言:javascript
复制
query: {
    presets: ['react', 'es2015'],
    cacheDirectory: true
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34623229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档