Как запретить Webpack генерировать файлы .js? - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь использовать Webpack для перебора нескольких scss файлов и создания из них css файлов.Программа работает и генерирует файлы, но выдает ошибку Multiple assets emit to the same filename name.css.

Я полагаю, это потому, что MiniCssExtractPlugin конфликтует с output Webpack.Любые мысли, как я могу отключить это?Или, по крайней мере, не допустить создания js файлов?

Текущий webpack.config.js:

const path = require('path');
const fs = require('fs');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

const setEntryPoints = (themes = {}) => {
  fs.readdirSync(path.join(__dirname, 'src')).forEach(file => {
    themes[file.slice(0, -5)] = path.join(__dirname, 'src', file)
  })
  return themes
}

const themes = setEntryPoints();

module.exports = {
  mode: "development",
  entry: themes,
  output: {
    filename: '[name].css',
    path: path.join(__dirname, 'dist')
  },
  module: {
  // Add loader
  rules: [{
      test: /\.(scss)$/,
      use: [
        MiniCssExtractPlugin.loader,
        'css-loader', 'sass-loader'
      ]
    }]
  },
  plugins: [
    new MiniCssExtractPlugin({
      filename: "[name].css",
    })
  ],
};

1 Ответ

0 голосов
/ 11 июня 2018

Сделай так.Может работать правильно

entry: {
  app: [
    path.resolve(__dirname, 'src/pug/app.pug'),
    path.resolve(__dirname, 'src/js/app.js'),
    path.resolve(__dirname, 'src/scss/app.scss')
  ]
},
output: {
  path: path.resolve(__dirname, 'dist'),
  filename: 'js/[name].js'
},

И вы делаете то же самое, что и с output.filename для имени файла в плагинах извлечения текста:

const extractHtml = new ExtractTextPlugin({
  filename: 'html/[name].html'
});

const extractScss = new ExtractTextPlugin({
  filename: 'css/[name].[contenthash].css',
  allChunks: true
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...