我正在使用带有webpack的中间人。因此,我包含用于外部管道(webpack)的此配置:config.rb
activate :external_pipeline,
name: :webpack,
command: build? ? 'yarn run build' : 'yarn run start',
source: '.tmp/dist',
latency: 1
并package.json
包含:
"scripts": {
"build": "webpack --bail -p --config webpack.config.js",
"start": "webpack --watch --progress --color --config webpack.config.js"
},
这就是webpack.config.js
外观
// webpack.config.js
var path = require('path');
var webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
mode: 'development',
entry: {
application: './source/javascripts/application.js',
styles: './source/stylesheets/application.scss',
},
output: {
path: __dirname + '/.tmp/dist',
filename: '[name].js',
},
module: {
rules: [
{
test: /\.s[ac]ss$/i,
use: [
{
loader: 'file-loader',
options: {
name: '[name].css'
}
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}
],
},
{
test: /\.css$/,
exclude: /node_modules/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: process.env.NODE_ENV === 'development',
},
},
'css-loader',
'postcss-loader',
]
},
{
test: /\.(png|svg|jpg|jpeg|gif)$/,
use: [
'file-loader',
],
},
{
test: /\.(woff(2)?|ttf|eot|svg|otf)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: 'file-loader',
options: {
name: 'fonts/[name].[ext]?[hash]'
}
}
]
}
}
该页面已经使用了一些自定义字体(位于 中source/fonts
),但现在我也想通过 webpack使用Font Awesome 。source/fonts
但不知何故,如果不将字体从字体真棒字体目录手动复制到文件夹,我就无法让它工作。我确定它与webpack.config.js
但我无法弄清楚,我必须如何整合它。
虽然我不确定它是否相关——这就是我包含 SCSS 的方式:
// source/stylesheets/application.scsss
@charset "utf-8";
@import "../../node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss";
@import "../../node_modules/@fortawesome/fontawesome-free/scss/regular.scss";
PS:只是为了澄清这一点。我想使用 webpack 在一个地方(webpack)处理所有资产。font-awesome-middleman
因此,我对使用或类似的宝石没有任何兴趣。