【问题标题】:Sprockets unable to find .es6 file upgrading from rails 4.2 to rails 5.0Sprockets 找不到从 rails 4.2 升级到 rails 5.0 的 .es6 文件
【发布时间】:2017-09-17 23:07:52
【问题描述】:

我正在将 rails 从 4.2 升级到 5.0 当我运行服务器时出现错误:

Sprockets::FileNotFound in Companies::Overviews#index

couldn't find file 'common.source-dcede919e0ca241c0d16d2f91b57781b1804c7be230d659517ab562aa80e136c.source.es6'
Checked in these paths: 
[...]
/Users/Mari/TimePoints/app/assets/javascripts   //<--common.es is here
[...]

错误来自index.html.erb 来自该行:

<%= javascript_include_tag "application" %>

在我的 application.js 中:

//=require common

宝石文件:

gem 'sprockets-rails', :require => 'sprockets/railtie'
gem 'sprockets', "~> 4.0.0.beta5"
gem 'babel-transpiler', '~> 0.7.0'

config/initializers/assets.rb:

Rails.application.config.assets.precompile += %w( .svg .eot .woff .ttf .es6)

如果我尝试将文件显式添加为:

Rails.application.config.assets.precompile += %w( common.es6 ) 

我尝试在manifest.js 中添加以下内容,但没有任何变化:

 //= link_tree ../javascripts/ .es6
 //= link_directory ../javascripts/ .es6
 //= link common.es6

如果我从application.js 中删除common.es6,那么cookies.es6 中的下一个文件会出现同样的错误

似乎只有.es6 文件有问题。不是.js 也不是.css

【问题讨论】:

  • 从 Rails 5.1 升级到 5.2 后出现同样的错误。找到任何解决方法了吗?

标签: ruby-on-rails ecmascript-6 ruby-on-rails-5 sprockets


【解决方案1】:

对于遇到此问题的其他人,关键是最后指定您“想要”的文件格式,即“js”;而不是文件系统中文件“拥有”的那个。 这就是为什么 Sprockets 4 文档建议在清单文件中使用 css 和 js 格式,即使底层文件可能是 es6、scss 等。 希望它有所帮助,其他任何人现在或将来都会偶然发现这个问题。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2015-05-09
    • 2021-07-09
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多