2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ExecJS::ProgramError がGemfileにcoffee-script-source ver1.8 を追加しても解消されない。

Last updated at Posted at 2021-05-17

現場で使えるRuby on Rails5速習実践ガイドを進めていて、P.99の http://localhost:3000/ にアクセスするところで ブラウザ上にExecJS::ProgramErrorが表示されました。

解消するまでに苦労したので、記録しておきます。

エラー内容(ローカルホストアクセス時のrails serverログ)

Started GET "/" for ::1 at 2021-05-18 01:20:01 +0900
   (0.4ms)  SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
  ↳ /Users/{ユーザ名}/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.2.5/lib/active_record/log_subscriber.rb:98
Processing by TasksController#index as HTML
  Rendering tasks/index.html.slim within layouts/application
  Rendered tasks/index.html.slim within layouts/application (17.5ms)
Completed 500 Internal Server Error in 1558ms (ActiveRecord: 0.0ms)


  
ActionView::Template::Error (TypeError: Cannot read property 'version' of undefined):
     5:       | Taskleaf
     6:     = csrf_meta_tags
     7:     = csp_meta_tag
     8:     = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload'
     9:     = javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
    10:   body
    11:     .app-title.navbar.navbar-expand-md.navbar-light.bg-light
  
(execjs):1:213
(execjs):19:14
(execjs):1:40
app/views/layouts/application.html.slim:8:in `_app_views_layouts_application_html_slim___1532042825703924558_70301116723620'

試したこと(解消せず)

Nodeコマンドの確認

Node -v でバージョンが表示されるよう設定したが解消せず。

npm install eslint

「TypeError: Cannot read property 'version' of undefined」で検索して最初にヒットしたため実行したが解消せず。

Gemfileにcoffee-script-sourceを追加し、update

bundle update coffee-script-source

上記コマンドを実行したが解消せず。

サーバ再起動、PC再起動

解消せず。

解消した方法

bundle update execjs
bundle update autoprefixer-rails

原因

特定できず。(心当たりある方、ご教授ください。)

注意点

bundle update でも解消しましたが、以下の注意点があるようです。

引数なしで行うと、それまでインストールされたgemのバージョン、つまりGemfile.lockを無視して、リモートで利用> 可能な最新のgemをinstallしてきて、依存関係の解決を行うことになります。

全てのgemに対して行う結果、相当数のgemのバージョンが変更されるので、今まで開発していたアプリケーションの挙動が変わってしまう可能性があります。

何の考えも無しにbundle updateを行うのはやめましょう!

そのため、開発の初段階である以外は、引数なしで実行するのは避けた方がよさそうです。

参考資料

「Windowsで...」とありますが、macでも同様の事象でしたので、参考にいたしました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?