新手问题 webpacker bootstrap eot 解析错误

Jesse_Fan · 2017年08月28日 · 最后由 zouyu 回复于 2018年04月12日 · 1929 次阅读

现在是在 pack/pack 下有个 app.css 这个文件里@import "bootstrap/dist/css/bootstrap.min.css"; 然后 webpack-dev-server 报错是 ERROR in ./app/frontend/packs/css/application.css Module build failed: ModuleNotFoundError: Module not found: Error: Can't resolve '../fonts/glyphicons-halflings-regular.eot' in '/Users/jesse/WorkBench/my611230/app/frontend/packs/css'

然后我看了下 loaders 目录下面有个叫做 assets 文件有在用 file-loader 处理一些字体文件的啊? const { env, publicPath } = require('../configuration.js')

module.exports = { test: /.(jpg|jpeg|png|gif|svg|eot|ttf|woff|woff2)$/i, use: [{ loader: 'file-loader', options: { publicPath, name: env.NODE_ENV === 'production' ? '[name]-[hash].[ext]' : '[name].[ext]' } }] } 是这个文件 assets 文件 options 里面需要格外配置一些东西吗?

代码排版

简单的来说,BS 是不源生支持 Webpack 的(即使是最新的 4 beta),特别是你用的是 BS 3.x 最后一次更新两年前,那时候还不存在 Webpack 呢,当然你说的问题显然也是有解的,但是不建议你折腾了。

最简单的方法是,既然 BS 4 beta 已经发布,不妨直接用新版,官方也给出了如何使用 Webpack 的文档 https://getbootstrap.com/docs/4.0/getting-started/webpack/

jasl 回复

我觉得 rails 混合 webpacker 真心的头昏脑胀的 而且配置一点都不自由 我现在想可以不可以 rails 还是用以前的 pipeline 然后我前端自己搭 node 写 webpack 自己编译打包好的文件直接送到 app/assets 里 还是用以前的老方法加载 js 和 css,而且我发现 webpacker 的 yarn 连 webpack 的 loader 文件都安装在项目依赖里面,这个不是应该在开发的依赖里面吗?真的再次感觉 webpakcer 的不成熟

Jesse_Fan 回复

Webpacker 只是包装了一下 webpack 那玩意难用得问前端社区咋想的... 上周研究一通宵,我也晕晕的...不过只能说看了 sprockets(Assets pipeline 背后的技术)的进展,只能说要提早接受 webpack,当然前端要是又自我革命,那只能怪 DHH 看走眼了吧。

你提的问题(可能)需要用 context.require 解决,简单来说就是 webpack 只会预处理在 js(entry)中 require 的资源。

此外,基于这个原理,简单处理下可以让 webpacker 完全替代掉 assets pipeline,但我最近很没空所以等 RubyConf 结束可以分享一下子

今年 重用 webpack 感觉比我开始用的时候简单了很多,今天看 webpacker,感觉和 webpack 相比真是复杂啊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号