Je suis en train d'utiliser des choses comme font-impressionnant et Fondation avec REACT et modules css, mais je ne peux pas comprendre comment les importer dans mon projet correctement .Importation css fournisseur lors de l'utilisation des composants de webpack + css
Notez que j'utilise HotModuleReplacementPlugin
et ExtractTextPlugin
pour obtenir un seul fichier css.
Quelque part dans le fichier css du composant de niveau supérieur, j'aimerais pouvoir faire @import 'font-awesome';
mais comment puis-je faire pour que le fichier soit traité tel quel et que les classes ne soient pas localisées font_awesome__fa-check
et autres?
Voici ma config webpack:
var paths = {
app: path.join(__dirname, './app/'),
dist: path.join(__dirname, './dist/'),
external: path.join(__dirname, './node_modules/'),
}
module.exports = {
entry: {
site: [
'webpack-dev-server/client?http://localhost:5000',
'webpack/hot/dev-server',
path.join(paths.app, '/index.js'),
]
},
output: {
path: paths.dist,
publicPath: '/',
filename: 'scripts/[name].[hash].js',
chunkFilename: '[name].[chunkhash].js'
},
resolve: {
extensions: ['', '.js'],
root: paths.app,
alias: {
'font-awesome.css': path.join(paths.external, '/font-awesome/css/font-awesome.min.css')
}
},
module: {
loaders: [
{
test: /\.jsx?$/,
loaders: ['babel'],
include: path.join(__dirname, 'app')
},
{
test: /\.css$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader?modules&localIdentName=[name]__[local]&importLoaders=1', 'postcss-loader')
}
]
},
postcss: [
require('autoprefixer-core'),
],
devtool: 'inline-source-map',
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
new ExtractTextPlugin("styles/[name].[chunkhash].css", {allChunks: true}),
new HtmlWebpackPlugin({
template: path.join(paths.app, '/site.html'),
filename: 'index.html',
inject: 'body',
chunks: ['site']
}),
]
};
Merci.
Très bien! Cela fonctionne réellement. Notez que je dois cependant demander le css externe du js. L'importer à partir d'un module CSS le rendra tout local. Merci – syko
@syko J'ai fini par utiliser une extension différente pour les fichiers avec la syntaxe css-modules dans mes projets. voir ma réponse mise à jour – lanan
@Shvetusya votre un épargnant de vie. Les plugins d'extraction BTW devraient maintenant avoir un repli. '' ' {test: /\.css$/, include: [résolution ('./ src/styles'),/node_modules /], utilisez: ExtractTextPlugin.extract ({fallback: 'style-loader', utilisez : ['css-loader']})}, '' ' – caffeinescript