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。

相關文章
相關標籤/搜索