Evet haklısın. Asıl sorun jasmine-gem
, özellikleri babilden geçirmemesidir. Sorununuza en hızlı çözümü sunmama izin verin ve bundan sonra benzer bir yaklaşımın olası uygulanmasını düşüneceğim jasmine-gem
.
Ana fikir, gerekli tüm babel konfigürasyonlarına sahip olduğu sürece özellikleri raylar web paketinden geçirmektir.
- Bu çözümde
jasmine-core
kullanmayacağımızdan yükleyinjasmine-gem
yarn add jasmine-core -D
Şimdi iki ek web paketi paketi oluşturun. Biri Yasemin içindir ve sadece Yasemin ve test koşucusunu içerecektir
// app/javascript/packs/jasmine.js
import 'jasmine-core/lib/jasmine-core/jasmine.css'
import 'jasmine-core/lib/jasmine-core/jasmine-html.js'
import 'jasmine-core/lib/jasmine-core/boot.js'
import 'jasmine-core/images/jasmine_favicon.png'
İkincisi, uygulama kodunuz ve spesifikasyonlarınız için
// app/javascript/packs/specs.js
// First load your regular JavaScript (copy all the JavaScript imports from your main pack).
let webpackContext = require.context('../javascripts', true, /\.js(\.erb)?$/)
for(let key of webpackContext.keys()) { webpackContext(key) }
// Then load the specs
let specsContext = require.context('../spec', true, /\.js(\.erb)?$/)
for(let key of specsContext.keys()) { specsContext(key) }
'../javascripts'
Ve '../spec'
yollarınıza dikkat edin . Benim için öyle '../../assets/javascripts'
ve '../../../spec'
saygılı görünüyordu .
Ardından Jasmine için Webpack ProvidePlugin'i ekleyin (bu kodu şuraya ekleyin config/webpack/environment.js
)
// config/webpack/environment.js
const webpack = require('webpack')
environment.plugins.prepend('Provide', new webpack.ProvidePlugin({
jasmineRequire: 'jasmine-core/lib/jasmine-core/jasmine.js',
}))
Jasmine ranner sayfasını uygulamanıza ekleyin
# config/routes.rb
Rails.application.routes.draw do
# ...
if Rails.env.development? || Rails.env.test?
get 'jasmine', to: 'jasmine#index'
end
end
# app/controllers/jasmine_controller.rb
class JasmineController < ApplicationController
layout false
def index
end
end
# app/views/jasmine/index.html.haml
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<%= stylesheet_pack_tag 'jasmine', :media => 'all' %>
</head>
<body>
<%= javascript_pack_tag 'jasmine' %>
<%= javascript_pack_tag 'specs' %>
</body>
</html>
- Şimdi Yasemin'in
/jasmine
rota üzerinde çalışmalı
Bu yanıtın temelinde hazırlanan yazı , ancak, ben Ruby 2.6.3 talimatları tekrar kontrol 6.0.2 raylar, katma önerilerine uygun değişiklikleri ve bu eserlerin kanıtlamak ettik.
Lütfen, cevabımın sizin için yararlı olup olmadığını veya bazı ek bilgilere ihtiyacınız olup olmadığını bize bildirin. Ancak, jasmine
mücevher veya benzeri bir uygulama ile başarılı olacak bir çözüm üzerinde çalışacağım .