Rails 用Webpack安装Bootstrap(附录webpack使用)

Rails6将默认使用webpack代替asset:

本文讲述如何自己配置。

参考:

https://getbootstrap.com/docs/4.1/getting-started/webpack/

https://github.com/rails/webpacker

https://gorails.com/episodes/how-to-use-bootstrap-with-webpack-and-rails?autoplay=1

 

步骤:

安装:

//后两个是依赖
yarn add bootstrap jquery popper.js

 

配置:

#config/webpack/environment.js

const { environment } = require('@rails/webpacker')
const webpack = require('webpack')
environment.plugins.append("Provide", new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery',
  Popper: ['popper.js', 'default']
}))
module.exports = environment


备注:
new webpack.ProvidePlugin(),自动load模块无需每次都import或require.
https://webpack.js.org/plugins/provide-plugin

#app/javascript/packs/application.js添加
import 'bootstrap'
import '../stylesheets/application'

document.addEventListener('turbolinks:load', ()=>{
  $('[data-toggle="tooltip"]').tooltip()
  $('[data-toggle="popover"]').popover()
})

#新建app/javascript/stylesheets/application.scss。
@import "~bootstrap/scss/bootstrap";

完成配置!可以使用Bootrap4了。

 

附录:rails/webpacker

rails5需要手动安装webpack。rails6默认使用webpack了!

结构:

app/javascript:
  ├── packs:
  │   # only webpack entry files here
  │   └── application.js
  └── src:
  │   └── application.scss
  └── images:
      └── logo.svg

 

在view上使用webpack:

<%= javascript_pack_tag 'application' %>

 

如果在pack文件中引进了styles:使用?来链接:

<%= stylesheet_pack_tag 'application' %>

 

如果链接静态资源<link><img>标签,使用:

<link rel="prefetch" href="<%= asset_pack_path 'application.css' %>" />
<img src="<%= asset_pack_path 'images/logo.svg' %>" />

 

 

development

2个binstubs。

# webpack dev server
./bin/webpack-dev-server

# watcher
./bin/webpack --watch --colors --progress

# standalone build
./bin/webpack

 

在开发模式下,Webpacker在命令中(on-demand)编译,不在前端upfront。这个过程发生在使用Webpacker helper methods时。因此无需运行任何独立的processes。编译错误会记录在标准的RAils log。

 
动态加载

如果想要动态加载(use live code reloading),或者因为JS代码过多导致on-demand compilation太慢,可以使用./bin/webpack-dev-server。这个进程会监视app/javascript/packs/*.js文件的变化并自动的在浏览器上重新加载。

当你开启development server, Webpacker会自动代理所有的webpack asset requests给服务器。

当你停动态加载后,会改回使用on-demand compilation。

 

转载于:https://www.cnblogs.com/chentianwei/p/10861483.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值