【发布时间】:2018-10-09 04:28:48
【问题描述】:
我有一个使用 webpacker 设置的 react-rails 应用程序。
我正在尝试使用来自 node_modules 的字体加载 font-awesome-pro。
我认为这是一项微不足道的任务,但我似乎找不到任何关于如何执行此操作的好的文档。
这是我目前所拥有的:
package.json 依赖:
"dependencies": {
"@rails/webpacker": "3.5",
"babel-preset-react": "^6.24.1",
"bootstrap": "^4.1.3",
"prop-types": "^15.6.2",
"react": "^16.5.2",
"react-dom": "^16.5.2",
"react-slick": "^0.23.1",
"react_ujs": "^2.4.4",
"slick-carousel": "^1.8.1",
"tachyons-z-index": "^1.0.9"
},
"devDependencies": {
"@fortawesome/fontawesome-pro": "^5.2.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-preset-env": "^1.7.0",
"file-loader": "^2.0.0",
"path": "^0.12.7",
"webpack-dev-server": "2.11.2"
}
文件.js:
var path = require('path');
module.exports = {
test: /\.(woff(2)?|eot|otf|ttf|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
exclude: path.resolve(__dirname, '../../app/assets'),
use: {
loader: 'file-loader',
options: {
outputPath: 'fonts/',
useRelativePath: false
}
}
}
环境.js
const { environment } = require('@rails/webpacker')
const file = require('./file')
environment.loaders.prepend('file', file)
module.exports = environment
application.scss:
@import '@fortawesome/fontawesome-pro/scss/fontawesome.scss';
应用程序.rb:
config.assets.paths << Rails.root.join('node_modules')
我错过了什么?据我所知,webpack 应该查看 node_modules 目录,根据 webpack test 查找字体文件并将资产放入输出目录:fonts/。
【问题讨论】:
标签: ruby-on-rails ruby webpack webpacker react-rails