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

Rails6将默认使用webpack代替asset:javascript

本文讲述如何本身配置。css

参考:前端

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

https://github.com/rails/webpackerjquery

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

 

步骤:

安装:git

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

 

配置:github

#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了。web

 

附录:rails/webpacker

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

结构:

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。

相关文章
相关标签/搜索