2017-05-31 15 views
0

最近、Webpack 1.xから2.x([email protected])にアプリケーションをアップグレードしようとしましたが、すべての移行がherehere私はアプリケーションを実行することができますが、ブートストラップは完全に取り除かれています。要素を調べると、CSSクラスがロードされていません(デベロッパーツールには表示されません)。ローダーに問題はありますか? cssファイルの場合Webpack 1.xからWebpack 2.xへの移行に関する問題

webpack.common.js

const webpack = require('webpack'); 
const helpers = require('./helpers'); 
const ExtractTextPlugin = require("extract-text-webpack-plugin"); 

const CopyWebpackPlugin = require('copy-webpack-plugin'); 
const HtmlWebpackPlugin = require('html-webpack-plugin'); 

const METADATA = { 
    title: 'App', 
    baseUrl: '.' 
}; 

var jQuery = require('jquery'); 

module.exports = { 
    entry: { 
    'polyfills': './src/polyfills.ts', 
    'vendor': './src/vendor.ts', 
    'main': './src/main.browser.ts' 
    }, 

    externals: { 
    "jQuery": "jQuery" 
    }, 
    resolve: { 

    alias: { 
     jquery: "jquery/dist/jquery.min" 
    }, 

    extensions: ['.ts', '.js'], 

    modules: [ 
     helpers.root('src'), 
     'node_modules' 
    ] 

    }, 

module: { 
    rules: [ 
     { 
     test: /\.js$/, 
     enforce: "pre", 
     loader: 'source-map-loader', 
     exclude: [ 
      helpers.root('node_modules/rxjs'), 
      helpers.root('node_modules/primeng') 
     ] 
     }, 
     { 
     test: /\.js$/, 
     loader: 'babel-loader' 
     }, 
     { 
     test: /\.ts$/, 
     loader: 'awesome-typescript-loader' 
     }, 
     { 
     test: /\.css$/, 
     loader: 'raw-loader' 
     }, 
     { 
     test: /\.html$/, 
     loader: 'raw-loader' 
     // exclude: [helpers.root('src/index.html')] 
     }, 
     { 
     test: /\.scss$/, 
     exclude: /node_modules/, 
     use: [ 
       "raw-loader", 
       "sass-loader" 
       ] 
     }, 
     { 
     test: /\.(woff|woff2|ttf|eot|svg)$/, 
     loader: "url-loader", 
      options: { 
      limit: 10000 
      } 
     } 
    ] 
    }, 
    plugins: [ 
    new webpack.LoaderOptionsPlugin({ 
     options: { 
     metadata: METADATA, 
     tslint: { 
      emitErrors: false, 
      failOnHint: false, 
      resourcePath: 'src' 
     } 
     } 
    }), 

    new webpack.ContextReplacementPlugin(
     /angular(\\|\/)core(\\|\/)@angular/, 
     helpers.root('src'), 
     {} 
    ), 

    new webpack.ProvidePlugin({ 
     "window.Tether": "tether", 
     _: 'lodash', 
     $: "jquery", 
     jQuery: "jquery" 
    }), 

    new webpack.optimize.CommonsChunkPlugin({ 
     name: helpers.reverse(['polyfills', 'vendor']) 
    }), 

    new ExtractTextPlugin({ 
     filename: "node_modules/fullcalendar/dist/fullcalendar.min.css", 
     allChunks: true 
    }), 

    new CopyWebpackPlugin(
     [ 
     { 
      from: 'src/server-components', 
      to: 'server-components' 
     }, 
     { 
      from: 'src/assets', 
      to: 'assets' 
     }, 
     { 
      from: 'src/shared-files', 
      to: 'shared-files' 
     } 
     ] 
    ), 
    new HtmlWebpackPlugin({ 
     template: 'src/index.html', 
     chunksSortMode: helpers.packageSort(['polyfills', 'vendor', 'main']) 
    }) 

    ], 
    node: { 
    global: true, 
    crypto: 'empty', 
    module: false, 
    clearImmediate: false, 
    setImmediate: false 
    } 

}; 

答えて

0

あなたは、CSS-ローダーを必要とします。このような何か:すべてのすべてで

{ 
    test: /\.css$/, 
    loader: ExtractTextPlugin.extract(
     { 
     fallback: 'style-loader', 
     use: [ 
      { 
      loader: 'css-loader', 
      options: { 
       importLoaders: 1, 
      }, 
      }, 
      { 
      loader: 'postcss-loader', 
      options: { 
       ident: 'postcss', // https://webpack.js.org/guides/migrating/#complex-options 
       plugins:() => [ 
       autoprefixer({ 
        browsers: [ 
        '>1%', 
        'last 4 versions', 
        'Firefox ESR', 
        'not ie < 9', // React doesn't support IE8 anyway 
        ], 
       }), 
       ], 
      }, 
      }, 
     ], 
     } 
), 
    // Note: this won't work without `new ExtractTextPlugin()` in `plugins`. 
}, 

、私が作成読むことによってWebPACKのについて多くのことを学びましたアプリケーションのWebPACKのコンフィグ反応し、ここでhttps://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/config/webpack.config.prod.js

+0

私はwebpack.common.jsでこれらの変更をしたが、変更はありません。 CSSやブートストラップにまだロードされていません – user3344978

+0

これを追加する必要があります。https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/config/webpack.config.prod.js#L297-あなたのプラグインのセクションのL299、それを済ませましたか? –

+0

Angularアプリケーションでも同じですか? – user3344978

0

ブートストラップをバンドルする:

1. create a src/styles.ts 
2. within styles.ts import the bootstrap CSS stylesheet 

のsrc /スタイル.ts

import 'css!./bootstrap/dist/css/bootstrap.css'; 
import ... // other stylesheets 

Webpack.config.js

entry: { 
     app: __dirname + '/src/main.ts', 
     polyfills: __dirname + '/src/polyfills.ts', 
     styles: __dirname + '/src/styles.ts' 
    }, 
    output: { 
     path: path.resolve(__dirname, 'dist'), 
     filename: 'bundles/[hash]-[name].bundle.js', 
     publicPath: '/' 
    }, 

    module: { 
     loaders: [ 
      { test: /\.css$/, loader: "style-loader!css-loader" } 
     ] 
    }, 
    plugins: [ 
     new CommonsChunkPlugin({ 
      names: [ "app", "polyfills", "styles"], 
      minChunks: Infinity }), 
     new HtmlWebpackPlugin({ 
      filename: __dirname + '/dist/index.html', 
      template: __dirname + '/src/index.html' 
     }) 
    ] 

Index.htmlと

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Angular Quickstart</title> 
    <base href="/" /> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <!-- Latest compiled and minified CSS --> 
    ... 

    </head> 

    <body> 
    <app>Loading...</app> 
    <!-- webpack will auto insert JS and CSS links here --> 
    </body> 

</html> 
+0

CSSスタイルはまだアプリケーションにロードされていません。スタイルのwebpack 2の変更点私はwebpack 1でこの問題に直面したことはなかったので – user3344978

関連する問題