Rails6 with Devise, Webpacker and Bootstrap integration
Tag: Ruby
Tag: Rails
Category: jekyll
Category: update
Category: git
Category: database
Category: PostgreSQL
Category: websocket
Category: ruby
Category: projects
Category: Redis
Category: mysql
Category: Mac
Category: Node
Category: NPM
Category: PM2
Category: nodejs
Category: Meteor
Category: Nginx
Category: gitLab
Category: Rails
- Why Ruby on Rails is better than Python Django?
- How to use Hotwire turbo in Rails 6 with Webpacker?
- Rails 6 Credentials (master.key and credentials.yml.enc)
- Rails Console
- JIRA-Atlassian-Connect-App-Django
- Rails 4 5.0 Session Cookie AuthenticityToken
- Rails Active Storage
- Rails 5 Source code Research
- 微信支付
- Rails零星笔记
Category: Homebrew
Category: CentOS
Category: FreeSwitch
Category: Ruby
- Ruby on Rails 8
- RESTful API
- Ruby on Rails 7
- Study from Ruby official website
- Ruby-Metaprogramming
- Ruby连数据库的问题
- rbenv使用
Category: Vim
Category: javascript
Category: React-Native
Category: Wechat
Category: homeland
Category: JavaScript
Category: Docker
Category: RubyMine
Category: Authorization
Category: RESTful-API
Category: Proxy
Category: Deploy
Category: Devise
Category: Bootstrap
Category: Active_Storage
Category: github
Category: Android
Category: cloud
Category: ssh
Category: python
Category: reactjs
Category: markdown
Category: ShadowSocks
Category: Code
Category: rails
Category: code
Category: Django
Category: Python
Category: DRF
Category: Fish
Category: Yarn
Category: Material-UI
Category: CSS
Category: aws
Category: uwsgi
Category: nginx
Category: docker
Category: React
Category: Enzyme
Category: Jira
Category: Interview
Category: JetBrain
Category: PyCharm
Category: ESLint
Category: Rails6
Category: NVM
Category: ssl
Category: tencent
Category: CI
Category: jenkins
Category: GitHub
Category: Credentials
Category: master.key
Category: Webpacker
Category: Turbo
Category: Hotwire
Category: Bootstrap5
Category: Flutter
Category: Clash
Category: Tor
Category: proxy
Category: Build
Category: SwitchyOmega
Category: Chrome-extension
Category: SQLAlchemy
Category: Algorithm
Category: Rails7
Category: Data
Category: Structure
Category: CPP
Category: Languages
Category: Golang
Category: Typescript
Category: Rails 8
RVM or rbenv
Install one of this two soft.
Rails
gem install rails --pre
rails new myapp --webpack -d postgresql
Webpacker
Read and do what https://github.com/rails/webpacker said.
rails webpacker:install
Should install yarn
successfully.
webpacker.yml
需要配置正确。
首先,webpack_compile_output: false
表示改动了javascript/packs
下的文件,也不会生成新的文件,
development下默认为false正常情况下够用了。
另外,我发现如果javascript/packs
下有同名但后缀不同的文件,如:app.js
和app.scss
,会有冲突(这估计是webpacker的一个bug),导致明明改动了application.js,却在界面上没有引用新的.js。
最好改成如:app.js
和app_css.scss
(不同名就可以了),因为这样的话,在public/packs/js
中会产生 application-a6101066db4a6301a095.js
和application_css-eac9a902a3d86406ebbf.js
,这就完全不会有冲突发生了。
但这种方法解决不够完美。完美的做法是就保持同名,设置extract_css: true
,并执行$ ./bin/webpack-dev-server
把webpack-dev-server起起来。
extract_css
是含义是为true时,页面上会显式引入.css文件,development下设置为false就可以了,因为生成的.js中会用js的方式引入css。
Devise
Read and do what https://github.com/plataformatec/devise/wiki said.
Bootstrap
Read and do what https://gist.github.com/yalab/cad361056bae02a5f45d1ace7f1d86ef said.
yarn add bootstrap@4.3.1 jquery popper.js
In config/webpack/environment.js
add:
environment.plugins.prepend('Provide', new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
Popper: ['popper.js', 'default']
}))
Integrate
layout.html.erb
<%= stylesheet_pack_tag 'sign_in' %>
这样的写法需要在app/javascript/packs/
下存在sign_in.scss
.