file-loader
(а не просто file).output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: '/static/' // название директории
},
<img src='./static/popup-illustration.png' />
<img src={require('path/to/img.jpg')} />
{
test: /\.scss$/,
use: [
'style-loader',
'sass-loader', // поменять местами с css-loader
'css-loader' // поменять местами с sass-loader
]
},
// https://stackoverflow.com/questions/36527536/import-and-convert-js-files-using-gulp-babel
var browserify = require('gulp-browserify');
gulp.task('bundle', function() {
gulp.src('./dist/bar.js') // entry point
.pipe(browserify())
.pipe(gulp.dest('./dist'))
});
...
const ExtractTextPlugin = require('extract-text-webpack-plugin');
...
// в секции plugins
plugins: [
...
new ExtractTextPlugin({
filename: 'style-[contenthash].css',
disable: false,
allChunks: false, // true
}),
...
]
в секции module -> rules (loaders)
...
{
test: /\.less$/,
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: ['css-loader', 'less-loader'],
publicPath: '/public', // ваш publicPath
}),
},
{
test: /\.scss$/,
use: [
'style-loader',
'css-loader',
'sass-loader',
],
include: path.join(__dirname, 'src'), // ваша директория тут
},
webpack-dev-server --open --hot --config webpack.dev.js
для чего поддерживается webpack
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: ['css-loader', 'postcss-loader', 'sass-loader'],
publicPath: '/public',
}),
},
{
test: /\.css$/,
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: ['css-loader', 'postcss-loader'],
publicPath: '/public',
}),
}, {
test: /\.scss$/,
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: ['css-loader', 'postcss-loader', 'sass-loader'],
publicPath: '/public',
}),
},