Это, кажется, текущая проблема с ExecJS и duktape в Windows.
См. Следующую ссылку для получения дополнительной информации: https://github.com/twbs/bootstrap-rubygem/issues/157
Короче говоря, для решения этой проблемы вы можете просто удалить / закомментировать duktape из вашего Gemfile. Если вы используете Node.js в качестве среды выполнения JS, не забудьте установить его (Node.js).
Если у вас все еще есть проблемы, удалите все директивы //= require
из вашего application.scss и оставьте их в application.js.
application.js
//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require_tree .
//= require jquery3
//= require popper
//= require bootstrap-sprockets
application.scss
@import "bootstrap";
Gemfile
Удалить gem 'duktape'
gem 'autoprefixer-rails'
gem 'bootstrap', '~> 4.1.1'
gem 'jquery-rails'
Из комментария к вопросу:
duktape стала JS Runtime по умолчанию в Windows некоторое время назад в
рельсы / рельсы # 30014.
Если вы посмотрите на другие подобные проблемы, связанные с Exejs, вы можете найти
из-за того, что Duktape на самом деле является виновником (однако его execjs здесь для
определение контекста дуктапе). Если вы измените среду выполнения
чтобы использовать Nodejs, ошибка будет устранена, как в случае с
@ Yasunari89
In config/boot.rb
ENV ['EXECJS_RUNTIME'] = 'Узел'
Вы можете найти больше информации в # 152, # 153 и # 155. Тем не менее, выше вопросов
с неверным регулярным выражением было исправлено с новой версией duktape, для более
Инфо посещение judofyr / duktape.rb # 41 Новая версия, которая разрешила
недопустимая проблема с регулярным выражением, возникла проблема, с которой вы столкнулись
сейчас. Эта проблема возникает из-за (как определено в execjs) duktape
не поддерживает сложные контексты и полный JS как идентификатор.
Однако PR находится на рассмотрении, что, возможно, решит проблему,
спасибо @ judofyr
Вы также должны убедиться, что ваш application.html.erb
настроен правильно. Вот пример:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>title</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<div class="container">
<%= yield %>
</div>
</body>
</html>
ExecJS поддерживает несколько сред выполнения, не только duktape и NodeJS.
https://github.com/rails/execjs
ExecJS supports these runtimes:
therubyracer - Google V8 embedded within Ruby
therubyrhino - Mozilla Rhino embedded within JRuby
Duktape.rb - Duktape JavaScript interpreter
Node.js
Apple JavaScriptCore - Included with Mac OS X
Microsoft Windows Script Host (JScript)
Google V8
mini_racer - Google V8 embedded within Ruby