Путаница - PullRequest
       29

Путаница

0 голосов
/ 03 мая 2018

Я внедрил Webpack в свое приложение на Rails несколько месяцев назад, и теперь он правильно компилирует и упорядочивает мои JS, CSS, изображения, SVG и шрифты и переименовывает их при необходимости.

Теперь Webpacker доступен и более интегрирован в Rails. У меня два вопроса:

Где размещаются все скомпилированные файлы? Моя текущая настройка Webpack выводит их все в / public, и я могу видеть их всех там. Где их помещает Webpacker?

Где я могу разместить какую-либо пользовательскую конфигурацию для Webpacker? Например: иметь дело с Sass, изображениями, SVG, шрифтами и т. Д.?

Спасибо

Edit:

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

module.exports = {
  entry: {
    'application': [
      './app/assets/scripts/application.js',
      './app/assets/styles/application.scss'
    ]
  },
  output: {
    path: path.join(__dirname, 'public', 'assets', 'application'),
    filename: 'js/[name].js',
    publicPath: '/assets/application/'
  },
  watch: false,
  devtool: 'cheap-module-eval-source-map',
  module: {
    rules: [
      {
        test: /\.s[ac]ss$/,
        use: ExtractTextPlugin.extract({
          use: ['css-loader?url=true', { loader:"resolve-url-loader", options: { debug: true} }, 'sass-loader?sourceMap']
        })
      },
      {
        test: /\.svg$/,
        use: 'file-loader?name=svg/[name].[ext]'
      },
      {
        test: /\.(gif|png|jpe?g)$/,
        use: 'file-loader?name=img/[name].[ext]'
      }
      // {
      //   test: /\.css$/,
      //   use: ExtractTextPlugin.extract({
      //     use: 'css-loader'
      //   })
      // }
    ]
  },
  plugins: [
    new webpack.ProvidePlugin({
      $: 'jquery',
      '$': 'jquery',
      'window.$': 'jquery',
      jQuery: 'jquery',
      'jQuery': 'jquery',
      'window.jQuery': 'jquery',
      jquery: 'jquery',
      'jquery': 'jquery',
      'window.jquery': 'jquery'
    }),
    new ExtractTextPlugin('css/[name].css'),
    new webpack.DllReferencePlugin({
      context: '.',
      manifest: require('./public/assets/vendor/json/vendor.json')
    }),
  ]
};
...