首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除webpack文件加载器的部分路径

删除webpack文件加载器的部分路径
EN

Stack Overflow用户
提问于 2017-12-20 21:04:46
回答 4查看 6.8K关注 0票数 8

我正在设置Webpack 3,目前正在配置静态图像的资产管理,我想将其从src文件夹复制到dist文件夹。我想保留我的/img文件夹的文件结构,因为它复制到dist文件夹,但我遇到的问题是我试图删除路径占位符的一部分。我想要实现的目标有可能实现吗?

我的规则如下:

代码语言:javascript
复制
  {
      test: /\.(png|jpe?g|gif|ico)$/,
      use: [{
          loader: 'file-loader',
          options: {
              name: '[path][name].[ext]?[hash]',
              //outputPath: 'img/'
          }
      }]
  }

,它通过上下文从我的入口点文件中抓取图像:

代码语言:javascript
复制
require.context('./img/', true, /\.(png|jpe?g|gif|ico)$/);

但是,当文件被复制过来时,因为我将路径占位符作为名称的一部分,所以文件将类似于/src/img/[name].[extension]?[hash]。我希望保持路径的其余部分完好无损,因为一些图像有像/src/img/favicons/[name].[extension]?[hash]这样的路径,我觉得dist文件夹应该保持这种结构。从代码中可以看到,我曾尝试使用outputPath,但这只是将文件设置为/img/src/img/[name].extension?[hash]。我也尝试过使用publicPath设置,但似乎没有任何效果。最终目标是让上面提到的两个文件在此路径中不包含文件名的/src部分。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-06-10 08:44:16

上下文选项就是您要查找的内容,在您的示例中:

代码语言:javascript
复制
  {
      test: /\.(png|jpe?g|gif|ico)$/,
      use: [{
          loader: 'file-loader',
          options: {
              name: '[path][name].[ext]?[hash]',
              context: 'src'
          }
      }]
  }
票数 23
EN

Stack Overflow用户

发布于 2018-01-25 16:06:52

以防你没有自己解决这个问题:有一个useRelativePath选项,它允许保留相对路径。此外,如果您不希望在outputPath中包含像../这样的内容,则可以在其中使用回调来更改它返回的内容。

在这两件事上的医生:

票数 4
EN

Stack Overflow用户

发布于 2019-02-03 21:05:54

使用webpack 4,您可以输出到自定义目录,在本例中为父文件夹目录,如下所示:

代码语言:javascript
复制
  {
    test: /\.(png|jpe?g|gif|ico)$/,
    exclude: [/some-folder/],
    use: {
      loader: "file-loader",
      options: {
        name: `[path][name].[ext]`,
        // Output into parent folder's directory
        outputPath: url => url.slice(url.indexOf(`/`) + 1)
      }
    }
  }

输出路径按该顺序将url, resourcePath, context作为参数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47906746

复制
相关文章

相似问题

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