javascript - CSS 图像未复制到 Webpack 中的输出文件夹

标签 javascript css webpack

我正在使用 Webpack 将多个 js/css 文件捆绑在一个站点中。我正在捆绑 bootstrap.css 和 chosen.css作为我的 bundle 的一部分。为了创建 bundle ,我有一个 main.js,我将其用作入口点以导入我需要的所有其他文件。我正在使用文件加载器来处理字体和图像文件并将它们移动到适当的目录。我正在使用 ExtractTextPlugincss-loaderresolve-url-loader从我的 js 包中创建一个单独的 css 包。

我的 main.js 是:

import 'bootstrap/dist/css/bootstrap.css';
import 'chosen-js/chosen.css';
import './datetimehelper.js';
import './deletelink.js';
import './dropdown.js';

我的 webpack.config.js 是:

var ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
  entry: './src/js/main.js',
  output: {
    filename: 'wwwroot/js/bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      },
      {
        test: /\.(png|jpg|gif)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: 'images/[name].[ext]',
              outputPath: 'wwwroot/'
            }
          }
        ]
      },
      {
        test: /\.(eot|svg|ttf|woff|woff2)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: 'fonts/[name].[ext]',
              outputPath: 'wwwroot/'
            }
          }
        ]
      },
      {
        test: /\.css$/,
        use: ExtractTextPlugin.extract({
          use: ['css-loader?url=false', 'resolve-url-loader'],
          publicPath: '../'
        })
      }
    ]
  },
  plugins: [
    new ExtractTextPlugin({
      filename: 'wwwroot/css/bundle.css'
    })
  ]
};

通过上述配置,bootstrap.css 中的字体引用被拾取,移动到适当的目录,并且 url 被固定在发出的 css 包中。但是,未拾取 chosen.css 中引用的图像。谁能告诉我需要做什么才能使图像正常工作?我试过用 url-loader 替换 file-loader 但没有改变。我也试过在我的 main.js 中导入图像并且它们被移动了,但是 css 包中的 url 没有被正确重写。

最佳答案

output 中配置 path 让生活变得更轻松。这将作为基本输出文件夹,所有其他加载器/插件都可以相对于它工作。可能是文件已复制但未复制到您想要的目录。请看一下WebpackBootstrap repo .配置复制并正确转换图像路径。

关于javascript - CSS 图像未复制到 Webpack 中的输出文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47659144/

相关文章:

javascript - 如何使用 RxJS5 延迟重试发送 HTTP 请求?

javascript - 用 Bootstrap 对齐四个按钮均匀堆叠?

node.js - Angular 4 生产部署工作流程

javascript - webpack 4 react jsx 无法渲染图像

javascript - 我的进度条颜色在 Firefox 中不起作用

javascript - 我的颜色应用程序的 jQuery 更好的方式?

javascript - 检测浏览器、标签页以及所有打开的标签页中的哪个标签页已关闭

html - 如何在不重叠网页内容的情况下减小背景图片的大小

html - 尽管有 % 宽度和高度,但在浏览器调整大小时缺少内容

javascript - webpack 热模块替换不起作用