заставить sourceMap работать с webpack 3.8.1 - PullRequest
0 голосов
/ 30 августа 2018

Я пробовал несколько вещей, но я не могу заставить sourceMap работать в любом браузере. Он генерирует style.css.map рядом с style.css, но в браузере я вижу только style.css. Я разделяю js и css, а также разделяю admin и front-end, когда они доступны. Есть ли что-то очевидное, что я должен попробовать? Вот мой webpack.config:

// Return array of configurations
module.exports = function ( env ) {
  return exportModules([js, css], env);
};

/**
 * Merge filetype configs with shared config and return them as an array of objects.
 * @param objs
 * @param env
 * @return {Array}
 */
const exportModules = (objs, env) => {
  const objArr = [];
  for(let i = 0; i < objs.length; i++){
    objArr.push({
      ...config(env),
      ...objs[i]
    });
  }
  return objArr;
};

// Shared config options
const config = function ( env ) {
  return {
    watch: env === 'watch',
    watchOptions: {
      ignored: [/node_modules/]
    },
    stats: {
      colors: true
    },
    devtool: 'source-map'
  }
};

// Config for JS files
const js = {
  entry: {
    'main.js' : `${__dirname}/src/js/main.es6.js`,
    //'admin.js' : `${__dirname}/src/js/admin.es6.js`,
  },
  output: {
    path: `${__dirname}/build/js`,
    filename: '[name]'
  },
  module: {
    rules: [
      { test: /\.js$/, use: { loader: 'babel-loader' }, exclude: /node_modules/ },
    ]
  }
};

// Config for SCSS files
const css = {
  entry: {
    'style.css' : `${__dirname}/src/scss/style.scss`,
    'admin.css': `${__dirname}/src/scss/admin.scss`
  },
  output: {
    path: `${__dirname}/build/css`,
    filename: '[name]'
  },
  module: {
    rules: [
      {
        test: /\.scss$/,
        exclude: /node_modules/,
        // module chain executes from last to first
        use: [
          {
            loader: 'file-loader?sourceMap',
            options: { name: '[name].css', outputPath: '../css/' }
          },
          { loader: 'extract-loader?sourceMap' },
          { loader: 'css-loader?sourceMap', options: { url: false, sourceMap: true } },
          { loader: 'resolve-url-loader', options: { publicPath: null } },
          { loader: 'sass-loader?sourceMap', options: { sourceMap: true } }
        ]
      },
    ]
  }
};
...