রেলস 6 এ জেসমিন কীভাবে কনফিগার করবেন?


9

আমি কীভাবে জেলমিলগুলিকে রেল environment পরিবেশে (যেখানে ওয়েবপ্যাক জাভাস্ক্রিপ্টের জন্য সম্পদ পাইপলাইন প্রতিস্থাপন করে) কনফিগার করব যাতে আমি আমার অ্যাপ্লিকেশনটির জন্য যে জাভাস্ক্রিপ্ট মডিউলগুলি লিখেছি তা পরীক্ষা করতে পারি?

আমি জুঁই রত্ন ইনস্টল করেছি, দৌড়েছি rails generate jasmine:installএবং jasmine.ymlআমার জাভাস্ক্রিপ্ট উত্স এবং চশমাগুলির অবস্থান নির্দেশ করতে সম্পাদনা করেছি।

সমস্যাটি হ'ল আমি আমদানি / রফতানি বিবৃতি ব্যবহার করতে পারি না। (উদাহরণস্বরূপ, ক্রোমে এই ত্রুটির ফলাফল পরীক্ষার জন্য আমার প্রথম মডিউলটি লোড করার চেষ্টা করা হচ্ছে Uncaught SyntaxError: Unexpected token 'export')

আমি যা বলতে পারি তা থেকে, বাবেল ব্যবহার করার জন্য আমাকে জুঁই সেট আপ করতে হবে; তবে, নতুন রেল 6 লেআউটে এটি কীভাবে করা যায় সে সম্পর্কে আমার কোনও ভাগ্য নেই।


আরে জ্যাক, @ ডফস, আমার উত্তরটি একবার দেখার জন্য আপনার কি সুযোগ ছিল? এটি কি আপনার পক্ষে যথেষ্ট বা আমি গভীরভাবে অনুসন্ধান / সহায়তা করতে পারি?
সের্গেই মেল

এখনো পর্যন্ত না. আমার নিয়মিত কাজের জন্য জানুয়ারি এবং ফেব্রুয়ারি বছরের ব্যস্ততম সময়। আমি যত তাড়াতাড়ি পারব আপনাকে জানাবো।
জ্যাক

উত্তর:


5

হ্যাঁ আপনি ঠিক. এর প্রধান সমস্যাটি jasmine-gemহ'ল এটি বাবেলের মাধ্যমে স্পিকটি পাইপ করে না। আমাকে আপনার সমস্যার দ্রুত সমাধান পোস্ট করুন এবং তার পরে, আমি একই ধরণের পদ্ধতির সম্ভাব্য বাস্তবায়ন সম্পর্কে ভাবব jasmine-gem

মূল ধারণাটি যতক্ষণ না এতে প্রয়োজনীয় সমস্ত বাবেল কনফিগারেশন রয়েছে ততক্ষণ রেল ওয়েবপ্যাকের মাধ্যমে চশমাগুলি পাইপ করা।

  1. ইনস্টল করুন jasmine-coreযেহেতু আমরা jasmine-gemএই সমাধানটিতে ব্যবহার করব না
    yarn add jasmine-core -D
  2. এখন দুটি অতিরিক্ত ওয়েবপ্যাক প্যাক তৈরি করুন। একটিতে জেসমিনের জন্য রয়েছে এবং এতে কেবল জুঁই এবং টেস্ট রানার থাকবে

    // 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'শ্রদ্ধার সাথে লাগছিল ।

  3. তারপরে জেসমিনের জন্য ওয়েবপ্যাক প্রোভাইডপ্লাগিন যুক্ত করুন (এতে এই কোড যুক্ত করুন 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',
    }))
  4. আপনার আবেদনে জুঁই রানার পৃষ্ঠা যুক্ত করুন

    # 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>
  5. এখন আপনার জুঁই /jasmineরুটে কাজ করা উচিত

এই উত্তরটি এই পোস্টের ভিত্তিতে প্রস্তুত করা হয়েছে , তবে আমি রুবি ২.6.৩, রেল 6.০.২ সম্পর্কিত নির্দেশাবলী পুনরায় পরীক্ষা করেছি, সুপারিশগুলিতে যথাযথ পরিবর্তন যুক্ত করেছি এবং প্রমাণ করি যে এটি কাজ করে।

দয়া করে আমার উত্তরটি আপনার পক্ষে সহায়ক হয়েছিল বা আপনার কিছু অতিরিক্ত তথ্যের প্রয়োজন আছে কিনা তা আমাকে জানান। তবে, আমি এমন একটি সমাধান নিয়ে কাজ করতে যাচ্ছি যা jasmineমণি বা অনুরূপ বাস্তবায়নে সফল হবে ।


আমি কি আপনাকে কিছু পরীক্ষা করার জন্য বলতে পারি? আমি এই নির্দেশাবলী অনুসরণ করেছি, জুঁই কাজ করছে, তবে হঠাৎ করে bootstrap.min.jsএকটি ত্রুটি ফেলছে যা মূলত এর jqueryআগে বোঝানো হচ্ছে না bootstrap। যাইহোক,] আমি কি এই কোড পরিবর্তন জাতীয় লোড অর্ডার ... বিশেষ করে আমার বুটস্ট্র্যাপ পর আবেদন লেআউট যা CDN মাধ্যমে লোড করা হচ্ছে খুঁজে পাচ্ছি না javascript_pack_tag 'application'লাইন এবং আমার application.jsইতিমধ্যেই একটি রয়েছে require('jquery')। যদি আপনার স্থানীয় পরিবেশে এই সেট আপ থাকে, আপনি কি অ্যাপ্লিকেশন বিন্যাসে সিডিএন এর মাধ্যমে বুটস্ট্র্যাপ লোড করতে পারেন এবং এটি কাজ করে কিনা তা দেখতে পারেন?
জেমস

আমি এটি বের করেছিলাম। পদক্ষেপ 3 কোডটি ওভাররাইড করে যা jquery প্লাগইন যুক্ত করেছে। এই উত্তরটি এটি স্থির করেছে: stackoverflow.com/questions/51447443/…
জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.