हाँ तुम सही हो। मुख्य समस्या jasmine-gem
यह है कि यह बेबल के माध्यम से कल्पना को पाइप नहीं करता है। मुझे आपकी समस्या का त्वरित समाधान करने दें और उसके बाद, मैं एक समान दृष्टिकोण के संभावित कार्यान्वयन के बारे में सोचूंगाjasmine-gem
।
मुख्य विचार रेल वेबपैक के माध्यम से ऐनक को पाइप करना है जब तक कि इसमें सभी आवश्यक बैबल कॉन्फ़िगरेशन हैं।
- स्थापित करें
jasmine-core
क्योंकि हम jasmine-gem
इस समाधान में
उपयोग नहीं करेंगेyarn add jasmine-core -D
अब दो अतिरिक्त वेबपैक पैक बनाएं। एक जैस्मीन के लिए है और इसमें केवल जैस्मीन और टेस्ट रनर शामिल होंगे
// 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'
और आपके आवेदन कोड और चश्मे के लिए दूसरा
// 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'
और '../spec'
रास्तों पर ध्यान दें । मेरे लिए यह समान '../../assets/javascripts'
और '../../../spec'
सम्मानजनक रूप से देखा गया ।
फिर जैस्मीन के लिए Webpack ProvPlugin जोड़ें (इस कोड को इसमें जोड़ें 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',
}))
अपने आवेदन में जैस्मीन रनर पेज जोड़ें
# 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>
- अब आपकी जैस्मिन को
/jasmine
रूट पर काम करना चाहिए
यह उत्तर इस पोस्ट के आधार पर तैयार किया गया है , हालांकि, मैंने रूबी 2.6.3, रेल 6.0.2 पर निर्देशों की पुनरावृत्ति की है, सिफारिशों में उचित परिवर्तन जोड़ा है और यह साबित करता है कि यह काम करता है।
कृपया, मुझे बताएं कि क्या मेरा उत्तर आपके लिए मददगार था या आपको कुछ अतिरिक्त जानकारी चाहिए। हालांकि, मैं एक समाधान पर काम करने जा रहा हूं जो jasmine
मणि या इसी तरह के कार्यान्वयन के साथ सफल होगा ।