💡
この記事は Middleman 時代に書いた古いものです。記録のため、astro-notion-blog に移行していますが、あまり参考にしないでください。
Rails 5.2 の設定
まず,現在の最新版である Rails 5.2.1 をインストールする. すでに学生が Webpack への移行をしているので,ここでも Webpack で運用することにする. 詳しくは Techracho の 新しいRailsフロントエンド開発(1)Asset PipelineからWebpackへ(翻訳) を参考に進める. 以下,手順を示す.
-
ディレクトリを作成して移動する
mkdir attendance; cd attendance
-
Ruby は rbenv で最新版をインストールしておく.rbenv がインストールされていなければ,homebrew で rbenv, ruby-build をインストールしておく
brew install rbenv ruby-build
-
rbenv で 2.5.3 をインストールする
rbenv install 2.5.3
-
このフォルダで利用する Ruby を 2.5.3 にしておく
rbenv local 2.5.3
-
Rails の場合,gem は bundler でローカルフォルダ(vendor/bundle)の下に展開する.このため,bundler だけは gem でインストールしておく.
gem install bundler
-
Gemfile を記述する
source 'http://rubygems.org' gem 'rails', '5.2.1'
-
bundler で vendor/bundle の下に gem 群をインストールする(2行目以降は結果)
$ bundle install --path vendor/bundle --jobs 4 Fetching gem metadata from http://rubygems.org/............. Fetching rake 12.3.1 Installing rake 12.3.1 Fetching concurrent-ruby 1.0.5 Fetching minitest 5.11.3 Fetching thread_safe 0.3.6 Installing minitest 5.11.3 Installing thread_safe 0.3.6 Installing concurrent-ruby 1.0.5 Fetching builder 3.2.3 Installing builder 3.2.3 Fetching erubi 1.7.1 Fetching mini_portile2 2.3.0 Installing erubi 1.7.1 Installing mini_portile2 2.3.0 Fetching crass 1.0.4 Installing crass 1.0.4 Fetching rack 2.0.5 Installing rack 2.0.5 Fetching nio4r 2.3.1 Fetching websocket-extensions 0.1.3 Installing nio4r 2.3.1 with native extensions Installing websocket-extensions 0.1.3 Fetching mini_mime 1.0.1 Installing mini_mime 1.0.1 Fetching arel 9.0.0 Installing arel 9.0.0 Fetching mimemagic 0.3.2 Using bundler 1.17.1 Fetching method_source 0.9.1 Installing method_source 0.9.1 Installing mimemagic 0.3.2 Fetching thor 0.20.0 Installing thor 0.20.0 Fetching tzinfo 1.2.5 Installing tzinfo 1.2.5 Fetching nokogiri 1.8.5 Fetching i18n 1.1.1 Installing i18n 1.1.1 Fetching websocket-driver 0.7.0 Installing websocket-driver 0.7.0 with native extensions Fetching mail 2.7.1 Installing mail 2.7.1 Fetching rack-test 1.1.0 Installing rack-test 1.1.0 Fetching sprockets 3.7.2 Installing sprockets 3.7.2 Fetching marcel 0.3.3 Installing marcel 0.3.3 Fetching activesupport 5.2.1 Installing activesupport 5.2.1 Fetching globalid 0.4.1 Fetching activemodel 5.2.1 Installing globalid 0.4.1 Installing activemodel 5.2.1 Fetching activejob 5.2.1 Installing activejob 5.2.1 Fetching activerecord 5.2.1 Installing nokogiri 1.8.5 with native extensions Installing activerecord 5.2.1 Fetching rails-dom-testing 2.0.3 Fetching loofah 2.2.3 Installing rails-dom-testing 2.0.3 Installing loofah 2.2.3 Fetching rails-html-sanitizer 1.0.4 Installing rails-html-sanitizer 1.0.4 Fetching actionview 5.2.1 Installing actionview 5.2.1 Fetching actionpack 5.2.1 Installing actionpack 5.2.1 Fetching actionmailer 5.2.1 Fetching actioncable 5.2.1 Fetching activestorage 5.2.1 Installing actionmailer 5.2.1 Installing actioncable 5.2.1 Installing activestorage 5.2.1 Fetching railties 5.2.1 Installing railties 5.2.1 Fetching sprockets-rails 3.2.1 Installing sprockets-rails 3.2.1 Fetching rails 5.2.1 Installing rails 5.2.1 Bundle complete! 1 Gemfile dependency, 41 gems now installed. Bundled gems are installed into `./vendor/bundle`
-
rails のインストール時に yarn が使われるので,もし入っていないなら homebrew でインストールしておく
brew install yarn
-
また,今回は PostgreSQL を使うので,もし入っていないなら同様に homebrew でインストールしておく
brew install postgresql
-
rails コマンドを実行する(2行目以降は結果)
bundle exec rails new . -d postgresql --skip-action-mailer --skip-active-storage --skip-action-cable --skip-sprockets --skip-coffee --skip-turbolinks --skip-test --webpack exist create README.md create Rakefile conflict .ruby-version Overwrite /Users/hkob/rails/attendance/.ruby-version? (enter "h" for help) [Ynaqdh] force .ruby-version create config.ru create .gitignore conflict Gemfile Overwrite /Users/hkob/rails/attendance/Gemfile? (enter "h" for help) [Ynaqdh] force Gemfile run git init from "." Initialized empty Git repository in /Users/hkob/rails/attendance/.git/ create package.json create app create app/assets/config/manifest.js create app/assets/javascripts/application.js create app/assets/javascripts/cable.js create app/assets/stylesheets/application.css create app/channels/application_cable/channel.rb create app/channels/application_cable/connection.rb create app/controllers/application_controller.rb create app/helpers/application_helper.rb create app/jobs/application_job.rb create app/mailers/application_mailer.rb create app/models/application_record.rb create app/views/layouts/application.html.erb create app/views/layouts/mailer.html.erb create app/views/layouts/mailer.text.erb create app/assets/images/.keep create app/controllers/concerns/.keep create app/models/concerns/.keep create bin create bin/bundle create bin/rails create bin/rake create bin/setup create bin/update create bin/yarn create config create config/routes.rb create config/application.rb create config/environment.rb create config/puma.rb create config/spring.rb create config/environments create config/environments/development.rb create config/environments/production.rb create config/environments/test.rb create config/initializers create config/initializers/application_controller_renderer.rb create config/initializers/assets.rb create config/initializers/backtrace_silencers.rb create config/initializers/content_security_policy.rb create config/initializers/cookies_serializer.rb create config/initializers/cors.rb create config/initializers/filter_parameter_logging.rb create config/initializers/inflections.rb create config/initializers/mime_types.rb create config/initializers/new_framework_defaults_5_2.rb create config/initializers/wrap_parameters.rb create config/locales create config/locales/en.yml create config/master.key append .gitignore create config/boot.rb create config/database.yml create db create db/seeds.rb create lib create lib/tasks create lib/tasks/.keep create lib/assets create lib/assets/.keep create log create log/.keep create public create public/404.html create public/422.html create public/500.html create public/apple-touch-icon-precomposed.png create public/apple-touch-icon.png create public/favicon.ico create public/robots.txt create tmp create tmp/.keep create tmp/cache create tmp/cache/assets exist vendor create vendor/.keep remove config/initializers/assets.rb remove app/views/layouts/mailer.html.erb remove app/views/layouts/mailer.text.erb remove app/mailers remove test/mailers remove app/assets/javascripts/cable.js remove app/channels remove config/initializers/cors.rb remove config/initializers/new_framework_defaults_5_2.rb run bundle install The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`. Fetching gem metadata from https://rubygems.org/......... Fetching gem metadata from https://rubygems.org/. Resolving dependencies... Using rake 12.3.1 Using concurrent-ruby 1.0.5 Using minitest 5.11.3 Using thread_safe 0.3.6 Using builder 3.2.3 Using erubi 1.7.1 Using mini_portile2 2.3.0 Using nio4r 2.3.1 Using websocket-extensions 0.1.3 Using mini_mime 1.0.1 Using arel 9.0.0 Using mimemagic 0.3.2 Using rack 2.0.5 Fetching msgpack 1.2.4 Fetching bindex 0.5.0 Using crass 1.0.4 Using bundler 1.17.1 Fetching byebug 10.0.2 Installing bindex 0.5.0 with native extensions Installing byebug 10.0.2 with native extensions Installing msgpack 1.2.4 with native extensions Fetching ffi 1.9.25 Installing ffi 1.9.25 with native extensions Fetching multi_json 1.13.1 Installing multi_json 1.13.1 Fetching rb-fsevent 0.10.3 Installing rb-fsevent 0.10.3 Fetching ruby_dep 1.5.0 Installing ruby_dep 1.5.0 Using method_source 0.9.1 Fetching pg 1.1.3 Installing pg 1.1.3 with native extensions Fetching puma 3.12.0 Installing puma 3.12.0 with native extensions Using thor 0.20.0 Using i18n 1.1.1 Using tzinfo 1.2.5 Using nokogiri 1.8.5 Using websocket-driver 0.7.0 Using mail 2.7.1 Using marcel 0.3.3 Using rack-test 1.1.0 Fetching rack-proxy 0.6.5 Installing rack-proxy 0.6.5 Using sprockets 3.7.2 Fetching bootsnap 1.3.2 Installing bootsnap 1.3.2 with native extensions Fetching rb-inotify 0.9.10 Installing rb-inotify 0.9.10 Using activesupport 5.2.1 Using loofah 2.2.3 Fetching listen 3.1.5 Installing listen 3.1.5 Using rails-dom-testing 2.0.3 Using rails-html-sanitizer 1.0.4 Using globalid 0.4.1 Using activemodel 5.2.1 Fetching jbuilder 2.7.0 Installing jbuilder 2.7.0 Fetching spring 2.0.2 Installing spring 2.0.2 Using actionview 5.2.1 Using activejob 5.2.1 Using activerecord 5.2.1 Fetching spring-watcher-listen 2.0.1 Installing spring-watcher-listen 2.0.1 Using actionpack 5.2.1 Using actioncable 5.2.1 Using actionmailer 5.2.1 Using activestorage 5.2.1 Using railties 5.2.1 Using sprockets-rails 3.2.1 Using rails 5.2.1 Fetching web-console 3.7.0 Installing web-console 3.7.0 Fetching webpacker 3.5.5 Installing webpacker 3.5.5 Bundle complete! 12 Gemfile dependencies, 59 gems now installed. Bundled gems are installed into `./vendor/bundle` rails webpacker:install RAILS_ENV=development environment is not defined in config/webpacker.yml, falling back to production environment create config/webpacker.yml Copying webpack core config create config/webpack create config/webpack/development.js create config/webpack/environment.js create config/webpack/production.js create config/webpack/test.js Copying .postcssrc.yml to app root directory create .postcssrc.yml Copying .babelrc to app root directory create .babelrc Creating JavaScript app source directory create app/javascript create app/javascript/packs/application.js apply /Users/hkob/rails/attendance/vendor/bundle/ruby/2.5.0/gems/webpacker-3.5.5/lib/install/binstubs.rb Copying binstubs exist bin create bin/webpack create bin/webpack-dev-server Adding configurations append .gitignore Installing all JavaScript dependencies run yarn add @rails/webpacker@3.5 --tilde from "." yarn add v1.12.1 info No lockfile found. [1/4] 🔍 Resolving packages... warning @rails/webpacker > postcss-cssnext@3.1.0: 'postcss-cssnext' has been deprecated in favor of 'postcss-preset-env'. Read more at https://moox.io/blog/deprecating-cssnext/ warning @rails/webpacker > postcss-cssnext > pixrem > browserslist@2.11.3: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. warning @rails/webpacker > postcss-cssnext > caniuse-api > browserslist@2.11.3: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. warning @rails/webpacker > postcss-cssnext > autoprefixer > browserslist@2.11.3: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. warning @rails/webpacker > css-loader > cssnano > autoprefixer > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. warning @rails/webpacker > css-loader > cssnano > postcss-merge-rules > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. warning @rails/webpacker > css-loader > cssnano > postcss-merge-rules > caniuse-api > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. [2/4] 🚚 Fetching packages... [3/4] 🔗 Linking dependencies... warning "@rails/webpacker > postcss-cssnext@3.1.0" has unmet peer dependency "caniuse-lite@^1.0.30000697". [4/4] 📃 Building fresh packages... success Saved lockfile. success Saved 539 new dependencies. info Direct dependencies └─ @rails/webpacker@3.5.5 info All dependencies ├─ @rails/webpacker@3.5.5 ├─ abbrev@1.1.1 ├─ acorn-dynamic-import@2.0.2 ├─ acorn@5.7.3 ├─ align-text@0.1.4 ├─ amdefine@1.0.1 ├─ ansi-styles@2.2.1 ├─ anymatch@2.0.0 ├─ are-we-there-yet@1.1.5 ├─ arr-flatten@1.1.0 ├─ array-find-index@1.0.2 ├─ asn1.js@4.10.1 ├─ asn1@0.2.4 ├─ assert@1.4.1 ├─ assign-symbols@1.0.0 ├─ async-each@1.0.1 ├─ async-foreach@0.1.3 ├─ async@2.6.1 ├─ asynckit@0.4.0 ├─ atob@2.1.2 ├─ autoprefixer@7.2.6 ├─ aws-sign2@0.7.0 ├─ aws4@1.8.0 ├─ babel-core@6.26.3 ├─ babel-generator@6.26.1 ├─ babel-helper-builder-binary-assignment-operator-visitor@6.24.1 ├─ babel-helper-call-delegate@6.24.1 ├─ babel-helper-define-map@6.26.0 ├─ babel-helper-explode-assignable-expression@6.24.1 ├─ babel-helper-remap-async-to-generator@6.24.1 ├─ babel-helpers@6.24.1 ├─ babel-loader@7.1.5 ├─ babel-plugin-check-es2015-constants@6.22.0 ├─ babel-plugin-syntax-async-functions@6.13.0 ├─ babel-plugin-syntax-class-properties@6.13.0 ├─ babel-plugin-syntax-dynamic-import@6.18.0 ├─ babel-plugin-syntax-exponentiation-operator@6.13.0 ├─ babel-plugin-syntax-object-rest-spread@6.13.0 ├─ babel-plugin-syntax-trailing-function-commas@6.22.0 ├─ babel-plugin-transform-async-to-generator@6.24.1 ├─ babel-plugin-transform-class-properties@6.24.1 ├─ babel-plugin-transform-es2015-arrow-functions@6.22.0 ├─ babel-plugin-transform-es2015-block-scoped-functions@6.22.0 ├─ babel-plugin-transform-es2015-block-scoping@6.26.0 ├─ babel-plugin-transform-es2015-classes@6.24.1 ├─ babel-plugin-transform-es2015-computed-properties@6.24.1 ├─ babel-plugin-transform-es2015-destructuring@6.23.0 ├─ babel-plugin-transform-es2015-duplicate-keys@6.24.1 ├─ babel-plugin-transform-es2015-for-of@6.23.0 ├─ babel-plugin-transform-es2015-function-name@6.24.1 ├─ babel-plugin-transform-es2015-literals@6.22.0 ├─ babel-plugin-transform-es2015-modules-amd@6.24.1 ├─ babel-plugin-transform-es2015-modules-commonjs@6.26.2 ├─ babel-plugin-transform-es2015-modules-systemjs@6.24.1 ├─ babel-plugin-transform-es2015-modules-umd@6.24.1 ├─ babel-plugin-transform-es2015-object-super@6.24.1 ├─ babel-plugin-transform-es2015-parameters@6.24.1 ├─ babel-plugin-transform-es2015-shorthand-properties@6.24.1 ├─ babel-plugin-transform-es2015-spread@6.22.0 ├─ babel-plugin-transform-es2015-sticky-regex@6.24.1 ├─ babel-plugin-transform-es2015-template-literals@6.22.0 ├─ babel-plugin-transform-es2015-typeof-symbol@6.23.0 ├─ babel-plugin-transform-es2015-unicode-regex@6.24.1 ├─ babel-plugin-transform-exponentiation-operator@6.24.1 ├─ babel-plugin-transform-object-rest-spread@6.26.0 ├─ babel-plugin-transform-regenerator@6.26.0 ├─ babel-plugin-transform-strict-mode@6.24.1 ├─ babel-polyfill@6.26.0 ├─ babel-preset-env@1.7.0 ├─ babel-register@6.26.0 ├─ base@0.11.2 ├─ base64-js@1.3.0 ├─ bcrypt-pbkdf@1.0.2 ├─ big.js@3.2.0 ├─ binary-extensions@1.12.0 ├─ block-stream@0.0.9 ├─ bluebird@3.5.2 ├─ brace-expansion@1.1.11 ├─ braces@2.3.2 ├─ browserify-aes@1.2.0 ├─ browserify-cipher@1.0.1 ├─ browserify-des@1.0.2 ├─ browserify-sign@4.0.4 ├─ browserify-zlib@0.2.0 ├─ browserslist@1.7.7 ├─ buffer-from@1.1.1 ├─ buffer-xor@1.0.3 ├─ buffer@4.9.1 ├─ builtin-modules@1.1.1 ├─ builtin-status-codes@3.0.0 ├─ cacache@10.0.4 ├─ cache-base@1.0.1 ├─ camelcase-keys@2.1.0 ├─ caniuse-api@2.0.0 ├─ caniuse-db@1.0.30000904 ├─ caniuse-lite@1.0.30000904 ├─ case-sensitive-paths-webpack-plugin@2.1.2 ├─ caseless@0.12.0 ├─ center-align@0.1.3 ├─ chokidar@2.0.4 ├─ chownr@1.1.1 ├─ clap@1.2.3 ├─ class-utils@0.3.6 ├─ clone-deep@2.0.2 ├─ clone@1.0.4 ├─ co@4.6.0 ├─ coa@1.0.4 ├─ code-point-at@1.1.0 ├─ collection-visit@1.0.0 ├─ color-convert@1.9.3 ├─ color-string@1.5.3 ├─ colormin@1.1.2 ├─ colors@1.1.2 ├─ combined-stream@1.0.7 ├─ commander@2.13.0 ├─ commondir@1.0.1 ├─ compression-webpack-plugin@1.1.12 ├─ concat-map@0.0.1 ├─ concat-stream@1.6.2 ├─ console-browserify@1.1.0 ├─ console-control-strings@1.1.0 ├─ constants-browserify@1.0.0 ├─ convert-source-map@1.6.0 ├─ copy-concurrently@1.0.5 ├─ copy-descriptor@0.1.1 ├─ core-util-is@1.0.2 ├─ cosmiconfig@4.0.0 ├─ create-ecdh@4.0.3 ├─ create-hmac@1.1.7 ├─ cross-spawn@3.0.1 ├─ crypto-browserify@3.12.0 ├─ css-color-function@1.3.3 ├─ css-color-names@0.0.4 ├─ css-loader@0.28.11 ├─ cssesc@0.1.0 ├─ cssnano@3.10.0 ├─ csso@2.3.2 ├─ currently-unhandled@0.4.1 ├─ cyclist@0.2.2 ├─ dashdash@1.14.1 ├─ date-now@0.1.4 ├─ debug@2.6.9 ├─ decamelize@1.2.0 ├─ decode-uri-component@0.2.0 ├─ deep-extend@0.6.0 ├─ defined@1.0.0 ├─ delayed-stream@1.0.0 ├─ delegates@1.0.0 ├─ des.js@1.0.0 ├─ detect-indent@4.0.0 ├─ detect-libc@1.0.3 ├─ diffie-hellman@5.0.3 ├─ domain-browser@1.2.0 ├─ duplexify@3.6.1 ├─ ecc-jsbn@0.1.2 ├─ electron-to-chromium@1.3.83 ├─ emojis-list@2.1.0 ├─ enhanced-resolve@3.4.1 ├─ errno@0.1.7 ├─ error-ex@1.3.2 ├─ es6-map@0.1.5 ├─ es6-set@0.1.5 ├─ es6-symbol@3.1.1 ├─ es6-weak-map@2.0.2 ├─ escape-string-regexp@1.0.5 ├─ escope@3.6.0 ├─ esprima@4.0.1 ├─ esrecurse@4.2.1 ├─ estraverse@4.2.0 ├─ events@1.1.1 ├─ evp_bytestokey@1.0.3 ├─ execa@0.7.0 ├─ expand-brackets@2.1.4 ├─ extend@3.0.2 ├─ extglob@2.0.4 ├─ extract-text-webpack-plugin@3.0.2 ├─ extsprintf@1.3.0 ├─ fast-deep-equal@2.0.1 ├─ fastparse@1.1.2 ├─ file-loader@1.1.11 ├─ fill-range@4.0.0 ├─ find-up@2.1.0 ├─ flush-write-stream@1.0.3 ├─ for-in@1.0.2 ├─ for-own@1.0.0 ├─ forever-agent@0.6.1 ├─ form-data@2.3.3 ├─ from2@2.3.0 ├─ fs-extra@0.30.0 ├─ fs-minipass@1.2.5 ├─ fs.realpath@1.0.0 ├─ fsevents@1.2.4 ├─ fstream@1.0.11 ├─ function-bind@1.1.1 ├─ gauge@2.7.4 ├─ gaze@1.1.3 ├─ get-stream@3.0.0 ├─ get-value@2.0.6 ├─ getpass@0.1.7 ├─ glob-parent@3.1.0 ├─ glob@7.1.3 ├─ globals@9.18.0 ├─ globule@1.2.1 ├─ har-schema@2.0.0 ├─ har-validator@5.1.0 ├─ has-ansi@2.0.0 ├─ has-flag@3.0.0 ├─ has-unicode@2.0.1 ├─ has-value@1.0.0 ├─ has-values@1.0.0 ├─ hash.js@1.1.5 ├─ hmac-drbg@1.0.1 ├─ home-or-tmp@2.0.0 ├─ hosted-git-info@2.7.1 ├─ html-comment-regex@1.1.2 ├─ http-signature@1.2.0 ├─ https-browserify@1.0.0 ├─ iconv-lite@0.4.24 ├─ icss-replace-symbols@1.1.0 ├─ icss-utils@2.1.0 ├─ ieee754@1.1.12 ├─ ignore-walk@3.0.1 ├─ import-cwd@2.1.0 ├─ import-from@2.1.0 ├─ in-publish@2.0.0 ├─ indent-string@2.1.0 ├─ indexof@0.0.1 ├─ inflight@1.0.6 ├─ ini@1.3.5 ├─ interpret@1.1.0 ├─ invert-kv@1.0.0 ├─ is-absolute-url@2.1.0 ├─ is-accessor-descriptor@1.0.0 ├─ is-arrayish@0.2.1 ├─ is-binary-path@1.0.1 ├─ is-builtin-module@1.0.0 ├─ is-data-descriptor@1.0.0 ├─ is-descriptor@1.0.2 ├─ is-directory@0.3.1 ├─ is-extglob@2.1.1 ├─ is-finite@1.0.2 ├─ is-fullwidth-code-point@1.0.0 ├─ is-glob@4.0.0 ├─ is-plain-obj@1.1.0 ├─ is-plain-object@2.0.4 ├─ is-stream@1.1.0 ├─ is-svg@2.1.0 ├─ is-typedarray@1.0.0 ├─ is-utf8@0.2.1 ├─ is-windows@1.0.2 ├─ isarray@1.0.0 ├─ isexe@2.0.0 ├─ isnumeric@0.2.0 ├─ isstream@0.1.2 ├─ js-base64@2.4.9 ├─ js-tokens@3.0.2 ├─ js-yaml@3.12.0 ├─ jsesc@1.3.0 ├─ json-loader@0.5.7 ├─ json-parse-better-errors@1.0.2 ├─ json-schema-traverse@0.4.1 ├─ json-schema@0.2.3 ├─ json-stringify-safe@5.0.1 ├─ json5@0.5.1 ├─ jsonfile@2.4.0 ├─ jsprim@1.4.1 ├─ kind-of@3.2.2 ├─ klaw@1.3.1 ├─ last-call-webpack-plugin@2.1.2 ├─ lazy-cache@1.0.4 ├─ load-json-file@1.1.0 ├─ loader-runner@2.3.1 ├─ locate-path@2.0.0 ├─ lodash.assign@4.2.0 ├─ lodash.camelcase@4.3.0 ├─ lodash.clonedeep@4.5.0 ├─ lodash.debounce@4.0.8 ├─ lodash.mergewith@4.6.1 ├─ lodash.tail@4.1.1 ├─ lodash.template@4.4.0 ├─ lodash.templatesettings@4.1.0 ├─ lodash@4.17.11 ├─ longest@1.0.1 ├─ loose-envify@1.4.0 ├─ loud-rejection@1.6.0 ├─ make-dir@1.3.0 ├─ map-obj@1.0.1 ├─ map-visit@1.0.0 ├─ math-expression-evaluator@1.2.17 ├─ mem@1.1.0 ├─ memory-fs@0.4.1 ├─ meow@3.7.0 ├─ micromatch@3.1.10 ├─ miller-rabin@4.0.1 ├─ mime-db@1.37.0 ├─ mime-types@2.1.21 ├─ mimic-fn@1.2.0 ├─ minimalistic-assert@1.0.1 ├─ minimalistic-crypto-utils@1.0.1 ├─ minimist@1.2.0 ├─ minizlib@1.1.1 ├─ mississippi@2.0.0 ├─ mixin-deep@1.3.1 ├─ mixin-object@2.0.1 ├─ mkdirp@0.5.1 ├─ move-concurrently@1.0.1 ├─ ms@2.0.0 ├─ nan@2.11.1 ├─ nanomatch@1.2.13 ├─ needle@2.2.4 ├─ next-tick@1.0.0 ├─ node-gyp@3.8.0 ├─ node-libs-browser@2.1.0 ├─ node-pre-gyp@0.10.3 ├─ node-sass@4.9.4 ├─ nopt@3.0.6 ├─ normalize-url@1.9.1 ├─ npm-bundled@1.0.5 ├─ npm-packlist@1.1.12 ├─ npm-run-path@2.0.2 ├─ npmlog@4.1.2 ├─ oauth-sign@0.9.0 ├─ object-copy@0.1.0 ├─ onecolor@3.1.0 ├─ optimize-css-assets-webpack-plugin@3.2.0 ├─ os-browserify@0.3.0 ├─ os-locale@2.1.0 ├─ os-tmpdir@1.0.2 ├─ osenv@0.1.5 ├─ p-finally@1.0.0 ├─ p-limit@1.3.0 ├─ p-locate@2.0.0 ├─ p-try@1.0.0 ├─ pako@1.0.6 ├─ parallel-transform@1.1.0 ├─ pascalcase@0.1.1 ├─ path-browserify@0.0.0 ├─ path-complete-extname@1.0.0 ├─ path-dirname@1.0.2 ├─ path-exists@2.1.0 ├─ path-key@2.0.1 ├─ path-parse@1.0.6 ├─ path-type@1.1.0 ├─ performance-now@2.1.0 ├─ pinkie@2.0.4 ├─ pixrem@4.0.1 ├─ pkg-dir@2.0.0 ├─ pleeease-filters@4.0.0 ├─ posix-character-classes@0.1.1 ├─ postcss-apply@0.8.0 ├─ postcss-attribute-case-insensitive@2.0.0 ├─ postcss-calc@6.0.2 ├─ postcss-color-function@4.0.1 ├─ postcss-color-gray@4.1.0 ├─ postcss-color-hex-alpha@3.0.0 ├─ postcss-color-hsl@2.0.0 ├─ postcss-color-hwb@3.0.0 ├─ postcss-color-rebeccapurple@3.1.0 ├─ postcss-color-rgb@2.0.0 ├─ postcss-color-rgba-fallback@3.0.0 ├─ postcss-colormin@2.2.2 ├─ postcss-convert-values@2.6.1 ├─ postcss-cssnext@3.1.0 ├─ postcss-custom-media@6.0.0 ├─ postcss-custom-properties@6.3.1 ├─ postcss-custom-selectors@4.0.1 ├─ postcss-discard-comments@2.0.4 ├─ postcss-discard-duplicates@2.1.0 ├─ postcss-discard-empty@2.1.0 ├─ postcss-discard-overridden@0.1.1 ├─ postcss-discard-unused@2.2.3 ├─ postcss-filter-plugins@2.0.3 ├─ postcss-font-family-system-ui@3.0.0 ├─ postcss-font-variant@3.0.0 ├─ postcss-image-set-polyfill@0.3.5 ├─ postcss-import@11.1.0 ├─ postcss-initial@2.0.0 ├─ postcss-load-config@2.0.0 ├─ postcss-loader@2.1.6 ├─ postcss-media-minmax@3.0.0 ├─ postcss-media-query-parser@0.2.3 ├─ postcss-merge-idents@2.1.7 ├─ postcss-merge-longhand@2.0.2 ├─ postcss-merge-rules@2.1.2 ├─ postcss-minify-font-values@1.0.5 ├─ postcss-minify-gradients@1.0.5 ├─ postcss-minify-params@1.2.2 ├─ postcss-minify-selectors@2.1.1 ├─ postcss-modules-extract-imports@1.2.1 ├─ postcss-modules-local-by-default@1.2.0 ├─ postcss-modules-scope@1.1.0 ├─ postcss-modules-values@1.3.0 ├─ postcss-nesting@4.2.1 ├─ postcss-normalize-charset@1.1.1 ├─ postcss-normalize-url@3.0.8 ├─ postcss-ordered-values@2.2.3 ├─ postcss-pseudo-class-any-link@4.0.0 ├─ postcss-pseudoelements@5.0.0 ├─ postcss-reduce-idents@2.4.0 ├─ postcss-reduce-initial@1.0.1 ├─ postcss-reduce-transforms@1.0.4 ├─ postcss-replace-overflow-wrap@2.0.0 ├─ postcss-selector-matches@3.0.1 ├─ postcss-selector-not@3.0.1 ├─ postcss-selector-parser@2.2.3 ├─ postcss-svgo@2.1.6 ├─ postcss-unique-selectors@2.0.2 ├─ postcss-values-parser@1.5.0 ├─ postcss-zindex@2.2.0 ├─ prepend-http@1.0.4 ├─ private@0.1.8 ├─ process-nextick-args@2.0.0 ├─ process@0.11.10 ├─ promise-inflight@1.0.1 ├─ prr@1.0.1 ├─ pseudomap@1.0.2 ├─ psl@1.1.29 ├─ public-encrypt@4.0.3 ├─ pump@2.0.1 ├─ pumpify@1.5.1 ├─ punycode@1.4.1 ├─ q@1.5.1 ├─ qs@6.5.2 ├─ query-string@4.3.4 ├─ querystring-es3@0.2.1 ├─ querystring@0.2.0 ├─ randomfill@1.0.4 ├─ rc@1.2.8 ├─ read-cache@1.0.0 ├─ read-pkg@1.1.0 ├─ readdirp@2.2.1 ├─ redent@1.0.0 ├─ reduce-css-calc@1.3.0 ├─ reduce-function-call@1.0.2 ├─ regenerator-runtime@0.10.5 ├─ regenerator-transform@0.10.1 ├─ regexpu-core@1.0.0 ├─ remove-trailing-separator@1.1.0 ├─ repeat-element@1.1.3 ├─ request@2.88.0 ├─ require-from-string@2.0.2 ├─ resolve-from@3.0.0 ├─ resolve-url@0.2.1 ├─ resolve@1.8.1 ├─ ret@0.1.15 ├─ rgb-hex@2.1.0 ├─ rgb@0.1.0 ├─ right-align@0.1.3 ├─ rimraf@2.6.2 ├─ run-queue@1.0.3 ├─ safer-buffer@2.1.2 ├─ sass-graph@2.2.4 ├─ sass-loader@6.0.7 ├─ sax@1.2.4 ├─ scss-tokenizer@0.2.3 ├─ semver@5.6.0 ├─ set-value@2.0.0 ├─ setimmediate@1.0.5 ├─ shallow-clone@1.0.0 ├─ shebang-command@1.2.0 ├─ shebang-regex@1.0.0 ├─ simple-swizzle@0.2.2 ├─ slash@1.0.0 ├─ snapdragon-node@2.1.1 ├─ snapdragon-util@3.0.1 ├─ sort-keys@1.1.2 ├─ source-map-resolve@0.5.2 ├─ source-map-support@0.4.18 ├─ source-map-url@0.4.0 ├─ spdx-correct@3.0.2 ├─ spdx-exceptions@2.2.0 ├─ split-string@3.1.0 ├─ sprintf-js@1.0.3 ├─ sshpk@1.15.2 ├─ ssri@5.3.0 ├─ static-extend@0.1.2 ├─ stdout-stream@1.4.1 ├─ stream-browserify@2.0.1 ├─ stream-each@1.2.3 ├─ stream-http@2.8.3 ├─ strict-uri-encode@1.1.0 ├─ string_decoder@1.1.1 ├─ strip-bom@2.0.0 ├─ strip-eof@1.0.0 ├─ strip-indent@1.0.1 ├─ strip-json-comments@2.0.1 ├─ style-loader@0.21.0 ├─ supports-color@5.5.0 ├─ svgo@0.7.2 ├─ tar@2.2.1 ├─ through2@2.0.3 ├─ timers-browserify@2.0.10 ├─ to-arraybuffer@1.0.1 ├─ to-fast-properties@1.0.3 ├─ to-regex-range@2.1.1 ├─ tough-cookie@2.4.3 ├─ trim-newlines@1.0.0 ├─ trim-right@1.0.1 ├─ true-case-path@1.0.3 ├─ tty-browserify@0.0.0 ├─ tunnel-agent@0.6.0 ├─ tweetnacl@0.14.5 ├─ typedarray@0.0.6 ├─ uglify-es@3.3.9 ├─ uglify-js@2.8.29 ├─ uglify-to-browserify@1.0.2 ├─ uglifyjs-webpack-plugin@1.3.0 ├─ union-value@1.0.0 ├─ unique-filename@1.1.1 ├─ unique-slug@2.0.1 ├─ units-css@0.4.0 ├─ unset-value@1.0.0 ├─ upath@1.1.0 ├─ uri-js@4.2.2 ├─ urix@0.1.0 ├─ url@0.11.0 ├─ use@3.1.1 ├─ util-deprecate@1.0.2 ├─ util@0.10.4 ├─ uuid@3.3.2 ├─ validate-npm-package-license@3.0.4 ├─ vendors@1.0.2 ├─ verror@1.10.0 ├─ viewport-dimensions@0.2.0 ├─ vm-browserify@0.0.4 ├─ watchpack@1.6.0 ├─ webpack-manifest-plugin@1.3.2 ├─ webpack@3.12.0 ├─ whet.extend@0.9.9 ├─ which-module@2.0.0 ├─ wide-align@1.1.3 ├─ window-size@0.1.0 ├─ wordwrap@0.0.2 ├─ worker-farm@1.6.0 ├─ wrap-ansi@2.1.0 ├─ xtend@4.0.1 ├─ yallist@3.0.2 ├─ yargs-parser@7.0.0 └─ yargs@8.0.2 ✨ Done in 250.35s. Installing dev server for live reloading run yarn add --dev webpack-dev-server@2.11.2 from "." yarn add v1.12.1 [1/4] 🔍 Resolving packages... [2/4] 🚚 Fetching packages... [3/4] 🔗 Linking dependencies... warning "@rails/webpacker > postcss-cssnext@3.1.0" has unmet peer dependency "caniuse-lite@^1.0.30000697". warning " > webpack-dev-server@2.11.2" has unmet peer dependency "webpack@^2.2.0 || ^3.0.0". warning "webpack-dev-server > webpack-dev-middleware@1.12.2" has unmet peer dependency "webpack@^1.0.0 || ^2.0.0 || ^3.0.0". [4/4] 📃 Building fresh packages... success Saved lockfile. success Saved 112 new dependencies. info Direct dependencies └─ webpack-dev-server@2.11.2 info All dependencies ├─ accepts@1.3.5 ├─ ansi-html@0.0.7 ├─ array-flatten@1.1.1 ├─ array-includes@3.0.3 ├─ array-union@1.0.2 ├─ array-uniq@1.0.3 ├─ batch@0.6.1 ├─ body-parser@1.18.3 ├─ bonjour@3.5.0 ├─ buffer-indexof@1.1.1 ├─ compressible@2.0.15 ├─ compression@1.7.3 ├─ connect-history-api-fallback@1.5.0 ├─ content-disposition@0.5.2 ├─ cookie-signature@1.0.6 ├─ cookie@0.3.1 ├─ deep-equal@1.0.1 ├─ define-properties@1.1.3 ├─ del@3.0.0 ├─ destroy@1.0.4 ├─ detect-node@2.0.4 ├─ dns-equal@1.0.0 ├─ dns-packet@1.3.1 ├─ dns-txt@2.0.2 ├─ ee-first@1.1.1 ├─ es-abstract@1.12.0 ├─ es-to-primitive@1.2.0 ├─ eventemitter3@3.1.0 ├─ eventsource@0.1.6 ├─ expand-range@1.8.2 ├─ express@4.16.4 ├─ faye-websocket@0.10.0 ├─ filename-regex@2.0.1 ├─ finalhandler@1.1.1 ├─ follow-redirects@1.5.9 ├─ forwarded@0.1.2 ├─ glob-base@0.3.0 ├─ globby@6.1.0 ├─ handle-thing@1.2.5 ├─ has-symbols@1.0.0 ├─ hpack.js@2.1.6 ├─ html-entities@1.2.1 ├─ http-deceiver@1.2.7 ├─ http-errors@1.6.3 ├─ http-parser-js@0.5.0 ├─ http-proxy-middleware@0.17.4 ├─ http-proxy@1.17.0 ├─ import-local@1.0.0 ├─ internal-ip@1.2.0 ├─ ip@1.1.5 ├─ ipaddr.js@1.8.0 ├─ is-callable@1.1.4 ├─ is-date-object@1.0.1 ├─ is-dotfile@1.0.3 ├─ is-equal-shallow@0.1.3 ├─ is-path-cwd@1.0.0 ├─ is-path-in-cwd@1.0.1 ├─ is-path-inside@1.0.1 ├─ is-posix-bracket@0.1.1 ├─ is-primitive@2.0.0 ├─ is-regex@1.0.4 ├─ is-symbol@1.0.2 ├─ is-wsl@1.1.0 ├─ json3@3.3.2 ├─ killable@1.0.1 ├─ loglevel@1.6.1 ├─ math-random@1.0.1 ├─ media-typer@0.3.0 ├─ merge-descriptors@1.0.1 ├─ methods@1.1.2 ├─ mime@1.6.0 ├─ multicast-dns-service-types@1.1.0 ├─ multicast-dns@6.2.3 ├─ negotiator@0.6.1 ├─ node-forge@0.7.5 ├─ object-keys@1.0.12 ├─ object.omit@2.0.1 ├─ obuf@1.1.2 ├─ on-headers@1.0.1 ├─ opn@5.4.0 ├─ original@1.0.2 ├─ p-map@1.2.0 ├─ parse-glob@3.0.4 ├─ path-is-inside@1.0.2 ├─ path-to-regexp@0.1.7 ├─ portfinder@1.0.19 ├─ preserve@0.2.0 ├─ proxy-addr@2.0.4 ├─ querystringify@2.1.0 ├─ randomatic@3.1.1 ├─ raw-body@2.3.3 ├─ regex-cache@0.4.4 ├─ resolve-cwd@2.0.0 ├─ select-hose@2.0.0 ├─ selfsigned@1.10.4 ├─ serve-index@1.9.1 ├─ serve-static@1.13.2 ├─ sockjs-client@1.1.4 ├─ sockjs@0.3.19 ├─ spdy-transport@2.1.1 ├─ spdy@3.4.7 ├─ thunky@1.0.3 ├─ time-stamp@2.2.0 ├─ unpipe@1.0.0 ├─ url-parse@1.4.3 ├─ utils-merge@1.0.1 ├─ wbuf@1.7.3 ├─ webpack-dev-middleware@1.12.2 ├─ webpack-dev-server@2.11.2 ├─ websocket-extensions@0.1.3 ├─ yargs-parser@4.2.1 └─ yargs@6.6.0 ✨ Done in 10.85s. You need to allow webpack-dev-server host as allowed origin for connect-src. This can be done in Rails 5.2+ for development environment in the CSP initializer config/initializers/content_security_policy.rb with a snippet like this: policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development? Webpacker successfully installed 🎉 🍰 run bundle exec spring binstub --all * bin/rake: spring inserted * bin/rails: spring inserted
-
最後のメッセージに書かれているように config/initializers/content_security_policy.rb に以下の行を追加する
Rails.application.config.content_security_policy do |policy| policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development? end
かなり長くなってしまったので,今日はここまで