如何解决通过Webpack传递JS,CSS和图像
这篇文章的原因是,我找不到任何简单的解决方案或Webpack的多通道输出说明。
我想实现什么?
src/
js/
app.js (importing node modules)
forms.js (referring to app.js and importing different forms' specific node modules)
other javascripts:
projects.js
events.js and so on
css/
style.css (importing bootstrap and other libraries)
forms.css
other styles
img/
(images)
webroot/ (dev)
js/
app.js
forms.js
other javascripts
projects.js
events.js
css/
style.css
img/
(images)
webroot/ (prod)
js/
app.min.js
forms.min.js
other javascripts minified
projects.min.js
events.min.js
css/
style.min.css
img/
(images optimized)
我希望将js与css和图像(以及可能的sass文件和字体)分开。图片和字体可以简单地复制,但是JS需要编译和缩小,而CSS / SASS需要处理和缩小。
var config = {
mode: 'development',module: {
rules: [
{
test: /\.js$/,exclude: /node_modules/,use: {
loader: 'babel-loader',options: {
presets: ['@babel/preset-env']
}
}
},{
test: /\.s?css$/,use: [
MiniCssExtractPlugin.loader,// instead of style-loader
'css-loader',]
}
]
},plugins: [
new CleanWebpackPlugin(),new webpack.ProvidePlugin({
$: 'jquery',jQuery: 'jquery'
}),new MiniCssExtractPlugin(),],};
var jsConfig = Object.assign({},config,{
entry: './js/app.js',output: {
path: path.resolve(__dirname,'./../webroot/js'),filename: 'app.js'
},});
var cssConfig = Object.assign({},{
entry: './css/style.css','./../webroot/css'),filename: 'style.css'
},});
module.exports = [
jsConfig,cssConfig
];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。