ââââcontent // markdown files
ââââdist
â ââââassets // contains bundle.js
â â ââââfonts // contains ttf's with hashed names
â â ââââimg // contains img's with hashed names
â ââââsite // contains html files with <script src="../assets/bundle.js"></script>
ââââsrc
ââââassets
â ââââfonts // contains real-name-fonts.ttf
â ââââimg // contains real-name-images.jpg
â ââââjs // contains my entry point site.js
â ââââscss
ââââconfig
ââââlayouts
ââââpartials
ââââscripts
这就是我的webpack.config.js的样子
module.exports = {
mode: 'development',
entry: join(paths.webpackSrc, 'js', 'site.js'), // points to 'src/assets/js/site.js'
plugins: [
new CleanWebpackPlugin()
],
output: {
filename: 'bundle.js',
path: paths.webpackDst, // points to 'dist/assets'
publicPath: paths.webpackPublicPath, // points to '/assets/'
},
devServer: {
contentBase: './dist',
},
module: {
rules: [
{
test: /\.(scss|css)$/,
use: [
{ loader: 'style-loader' },
{ loader: 'css-loader' },
{ loader: 'postcss-loader', options: { plugins: function () { return [require('autoprefixer')]; } } },
{ loader: 'sass-loader' }
]
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
loader: 'file-loader',
options: {
outputPath: 'fonts'
}
},
{
test: /\.(png|svg|jpg|gif)$/,
loader: 'file-loader',
options: {
outputPath: 'img'
}
},
]
}
}
这是我的切入点的一部分
site.js
import 'bootstrap';
import 'popper.js';
import '../scss/_stylesheet.scss';
import Avatar from '../img/avatar.jpg';
var avatarImgNavbar = document.getElementById('avatar');
avatarImgNavbar.src = Avatar;
我可以看到webpack正在提取资产,它们确实显示在正确的对应项中
dist/assets/
dist/site
似乎找不到资源,尽管来自scss的样式正在得到应用。
为什么?我该怎么解决?