首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack对Js和Css的简约与非简约

Webpack对Js和Css的简约与非简约
EN

Stack Overflow用户
提问于 2017-02-19 06:40:03
回答 2查看 2.3K关注 0票数 1

下面是我想要的文件结构:

代码语言:javascript
复制
- dist
  - js
    - jPlayer.js
    - jPlayer.min.js
  - css
    - skins
      - sleek.css
      - sleek.min.css

这是我的webpack.config.js

代码语言:javascript
复制
import ExtractTextPlugin from 'extract-text-webpack-plugin';
import OptimizeCssAssetsPlugin from 'optimize-css-assets-webpack-plugin';
import autoprefixer from 'autoprefixer';
import webpack from 'webpack';

const debug = process.env.NODE_ENV !== 'production';

export default {
  context: __dirname,
  entry: {
    'jPlayer.js': './build.js',
    'jPlayer.min.js': './build.js',
    'sleek.css': './src/less/skins/sleek.less',
    'sleek.min.css': './src/less/skins/sleek.less'
  },
  output: {
    path: './dist/',
    filename: '[name]',
  },
  devServer: {
    historyApiFallback: true,
  },
  module: {
    loaders: [
      {
        test: /\.jsx?$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015', 'stage-0'],
          plugins: ['transform-class-properties', 'transform-decorators-legacy'],
        },
      },
      {
        test: /\.less$/,
        loader: ExtractTextPlugin.extract('style-loader',
          'css-loader?importLoaders=1' +
          '!postcss-loader' +
          '!less-loader'),
      },
      {
        test: /\.(woff2?|eot|ttf|svg)(\?[\s\S]+)?$/,
        loader: 'url-loader?limit=100000',
      },
      {
        test: /\.(jpg)$/,
        loader: 'file-loader',
      },
    ],
  },
  plugins: [
    new ExtractTextPlugin('[name]'),
    new webpack.optimize.UglifyJsPlugin({
      include: /\.min\.js$/,
    }),
    new OptimizeCssAssetsPlugin({
      assetNameRegExp: /\.min\.css$/
    })
  ],
  postcss: () => [autoprefixer],
  resolve: {
    extensions: ['', '.js', '.jsx'],
  },
};

这是当前输出

代码语言:javascript
复制
- dist
  - jPlayer.js
  - jPlayer.min.js
  - sleek.css
  - sleek.min.css

UglifyJs也一直像这样破坏我的sleek.css文件:

我该怎么做呢?

这不是我想要的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-19 23:58:51

UglifyJS是这里的问题所在,出于某种原因,它会处理css文件,尽管它的名称中有JS,这太愚蠢了。

BabiliPlugin的效果要好得多,因为它没有弄乱css文件。

代码语言:javascript
复制
import ExtractTextPlugin from 'extract-text-webpack-plugin';
import OptimizeCssAssetsPlugin from 'optimize-css-assets-webpack-plugin';
import autoprefixer from 'autoprefixer';
import BabiliPlugin from 'babili-webpack-plugin';

export default {
  context: __dirname,
  entry: {
    'js/jPlayer.js': './src/index.js',
    'js/jPlayer.min.js': './src/index.js',
    'css/skins/sleek.css': './src/less/skins/sleek.less',
    'css/skins/sleek.min.css': './src/less/skins/sleek.less',
  },
  output: {
    path: './dist/',
    filename: '[name]',
  },
  devServer: {
    historyApiFallback: true,
  },
  module: {
    loaders: [
      {
        test: /\.jsx?$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015', 'stage-0'],
          plugins: ['transform-class-properties', 'transform-decorators-legacy'],
        },
      },
      {
        test: /\.less$/,
        loader: ExtractTextPlugin.extract('style-loader',
          'css-loader?importLoaders=1' +
          '!postcss-loader' +
          '!less-loader'),
      },
      {
        test: /\.(woff2?|eot|ttf|svg)(\?[\s\S]+)?$/,
        loader: 'url-loader?limit=100000',
      },
      {
        test: /\.jpg$/,
        loader: 'file-loader',
      },
    ],
  },
  plugins: [
    new ExtractTextPlugin('[name]'),
    new OptimizeCssAssetsPlugin({
      assetNameRegExp: /\.min\.css$/,
    }),
    new BabiliPlugin({}, {
      test: /\.min\.js$/,
    }),
  ],
  postcss: () => [autoprefixer],
  resolve: {
    extensions: ['', '.js', '.jsx'],
  },
};
票数 1
EN

Stack Overflow用户

发布于 2017-02-19 15:53:11

尝试将您的output配置更改为:

代码语言:javascript
复制
output: {
    path: './dist/',
    filename: 'js/[name]',
}

ExtractTextPlugin的配置是:

代码语言:javascript
复制
new ExtractTextPlugin('./css/[name].css')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42321505

复制
相关文章

相似问题

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