초경량 설정을 사용하여 Rails 프로젝트 시작

19363 단어 codingrubyrails

Rails 프로젝트를 만들어야 한다고 가정하면 이 프로젝트는 고전적인 ERB 보기와 PostgreSQL을 사용합니다.다음 명령을 실행하여 my project라는 새 Rails 프로젝트를 만드는 방법입니다.
Ruby 2.7.1과 Rails 6를 사용하고 있습니다.rails new my-project --database=postgresql이 명령은 폴더 my 프로젝트를 생성합니다. 그 중에서 Gemfile을 찾을 것입니다. 프로그램에서 사용할 모든 gm를 정의합니다.
생성된 GEM 파일의 내용입니다.
나는 항상 생성된 댓글을 삭제하여gems를 더욱 명확하게 이해하는 경향이 있다
source 'https://rubygems.org'

ruby '2.7.1'

gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
gem 'pg', '>= 0.18', '< 2.0'
gem 'puma', '~> 4.1'
gem 'sass-rails', '>= 6'
gem 'webpacker', '~> 4.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.7'
gem 'bootsnap', '>= 1.4.2', require: false

group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '~> 3.2'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

group :test do
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  gem 'webdrivers'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

마지막 명령을 실행한 후 설치된 Rails 6의 기본 GEM입니다.어플리케이션의 경우 이 모든 것YAGNI이 필요하지 않으므로 GEM 파일을 좀 정리합시다.rails new 명령에 추가 옵션을 추가할 것입니다.실행rails new -h에서 전체 옵션 목록을 볼 수 있습니다.
다시 생성하기 전에 마지막으로 생성된 폴더를 삭제하십시오.이를 위해 다음 명령을 사용할 수 있습니다 sudo rm -r my-project
rails new my-project --database=postgresql --skip-keeps --skip-action-mailer --skip-action-mailbox --skip-action-text --skip-active-storage --skip-action-cable --skip-puma --skip-test --skip-bundle --skip-webpack-install

옵션 설명
  • --skip-keeps왜?이것은 빈 폴더를git 저장소에 추가하는 것을 피할 수 있습니다. (저장소에 있는 빈 파일을 제출하고 싶지 않습니다.)
  • --skip-action-mailer왜?나는 이런 것들로 나의 프로젝트를 시작할 필요가 없다
  • --skip-action-mailbox왜?나는 이런 것들로 나의 프로젝트를 시작할 필요가 없다
  • --skip-action-text왜?나는 이런 것들로 나의 프로젝트를 시작할 필요가 없다
  • --skip-active-storage왜?나는 이런 것들로 나의 프로젝트를 시작할 필요가 없다
  • --skip-action-cable왜?나는 이런 것들로 나의 프로젝트를 시작할 필요가 없다
  • --skip-puma왜?Puma 웹 서버는 생산 환경에 적용되지만 개발에는 기본 WebBrick 웹 서버
  • 를 사용할 수 있습니다
  • --skip-test왜?RSpec를 사용하므로 기본 Minitest
  • 가 필요하지 않습니다.
  • --skip-bundle왜?GEM 파일을 변경한 후 수동으로 실행bundle install 명령
  • --skip-webpack-install왜?GEM 파일을 변경한 후
  • 명령을 수동으로 실행합니다rails webpacker:install.
    마지막 명령을 실행하면 생성되는 Gemfile입니다.
    source 'https://rubygems.org'
    
    ruby '2.7.1'
    
    gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
    gem 'pg', '>= 0.18', '< 2.0'
    gem 'sass-rails', '>= 6'
    gem 'webpacker', '~> 4.0'
    gem 'turbolinks', '~> 5'
    gem 'jbuilder', '~> 2.7'
    gem 'bootsnap', '>= 1.4.2', require: false
    
    group :development, :test do
      gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
    end
    
    group :development do
      gem 'web-console', '>= 3.3.0'
      gem 'listen', '~> 3.2'
      gem 'spring'
      gem 'spring-watcher-listen', '~> 2.0.0'
    end
    
    gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
    
    
    더 많은 GEM 파일 정리rails new 명령 옵션을 사용하여 Gemfile을 정리했지만, 필요하지 않은 gm를 수동으로 삭제하여 더 많은 정리를 할 수 있습니다.이렇게 하라고.
    우리가 보존할 수 있는 보석
  • railspg gems는 왜 이 두 gems가 Rails와 PostgreSQL을 사용하여 응용 프로그램을 개발하는 기초인지
  • sass-railswebpackergems가 sprokes(기본 CSS bundler)와 WebPack(기본 JS bundler)
  • 에 왜 이 두 개의 gems를 필요로 하는가
  • turbolinksgem이 왜 페이지 사이의 내비게이션을 가속화해야 하는가
  • bootsnapgem이 응용 프로그램의 불러오기를 최적화하기 위해 왜 이gem가 필요한가
  • byebugweb-consolegems는 왜 이 두 개의gems가 디버깅 응용 프로그램에 유용한가
  • spring,spring-watcher-listenlistengems는 왜 이 세 개의gems가 캐시를 통해 흔히 볼 수 있는 조작(예를 들어 rails 컨트롤러, 테스트 실행 등)을 통해 협동 작업을 통해 개발을 가속화하는가
  • 우리가 제거할 수 있는 보석
  • tznfo-data 왜 이gem이not necessary on unix-based systems(Mac 또는 Ubuntu)인지, 그래서 나처럼 Mac이나 Ubuntu를 사용한다면 삭제할 수 있다
  • jbuilder API 개발에서 자주 사용하는 JSON 데이터를 사용하지 않으려는 이유
  • 최종 GEM 파일입니다.
    source 'https://rubygems.org'
    
    ruby '2.7.1'
    
    gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
    gem 'pg', '>= 0.18', '< 2.0'
    gem 'sass-rails', '>= 6'
    gem 'webpacker', '~> 4.0'
    gem 'turbolinks', '~> 5'
    gem 'bootsnap', '>= 1.4.2', require: false
    
    group :development, :test do
      gem 'byebug'
    end
    
    group :development do
      gem 'web-console', '>= 3.3.0'
      gem 'listen', '~> 3.2'
      gem 'spring'
      gem 'spring-watcher-listen', '~> 2.0.0'
    end
    
    
    플랫폼 섹션byebug을 삭제했습니다.유닉스 기반 시스템의 기본 플랫폼은 루비이기 때문에 Windows에서 개발하지 않으려고 하기 때문에 플랫폼 파라미터는 필요하지 않습니다
    이런 방법의 단점 중 하나는 내가 여기서 보여준 것처럼 이 경량급 설정을 시작하려면 매번 같은 긴 명령을 실행해야 한다는 것이다
    rails new my-light-project --database=postgresql --skip-keeps --skip-action-mailer --skip-action-mailbox --skip-action-text --skip-active-storage --skip-action-cable --skip-puma --skip-test --skip-bundle --skip-webpack-install
    
    
    이 긴 명령을 약간 줄일 수 있는 로고를 가리키는 단축키가 있습니다. rails 새 명령 옵션 단축키
  • -d postgresql 대체 --database=postgresql
  • -M 대체 --skip-action-mailer
  • -C 대체 --skip-action-cable
  • -P 대체 --skip-puma
  • -T 대체 --skip-test
  • -B 대체 --skip-bundle
  • 따라서 명령은 다음과 같습니다.
    rails new my-light-project -d postgresql --skip-keeps -M --skip-action-mailbox --skip-action-text --skip-active-storage -C -P -T -B --skip-webpack-install
    
    
    네, 좋아요. 그래도 길어요.따라서 더 좋은 방법은 긴 명령을 .railsrc 파일로 이동하는 것입니다. here
    이렇게 로고를 .railsrc 파일에 넣기만 하면 됩니다.
    --database=postgresql
    --skip-keeps
    --skip-action-mailer
    --skip-action-mailbox
    --skip-action-text
    --skip-active-storage
    --skip-puma
    --skip-action-cable
    --skip-test
    --skip-bundle
    --skip-webpack-install
    
    
    로고를 .railsrc 파일로 이동한 후 이 명령만 실행할 수 있습니다. rails new my-project 파일에 정의된 옵션을 기반으로 변경 사항을 적용하여 rails 프로젝트를 만듭니다. .railsrc

    경량 항목을 작성하는 모든 단계 요약

  • 필요한 옵션
  • 을 사용하여 파일 만들기.railsrc
  • 작동rails new my-project
  • GEM 파일을 편집하고 불필요한 내용을 삭제합니다(위의 몇 줄에 설명된 바와 같이)
  • 작동bundle install
  • 작동rails webpacker:install
  • 작동rails db:setup
  • 작동rails s
  • GEM 파일을 정리하고 경량급 프로젝트 설정을 획득하는 이 정책은 서버 쪽에서 렌더링된 매우 기본적인 것을 사용하는 새로운 프로젝트에 적용됩니다.
    마지막 조언은 영원히 가장 간단한 것부터 시작하고, 가장 간단한 것부터 성장하는 것이다. 당신이 지금 필요로 하지 않는, 아마도 당신이 지금 필요로 하지 않는 미지의 것부터 시작하는 것이 아니다.

    좋은 웹페이지 즐겨찾기