আমি আমার অ্যাপ্লিকেশনটিতে ওয়েবপ্যাকটি ব্যবহার করছি, যার মধ্যে আমি দুটি জাভাস্ক্রিপ্ট ফাইল / কোডের জন্য বান্ডেল.জেএস এবং জিকুয়েরি এবং প্রতিক্রিয়ার মতো সমস্ত লাইব্রেরির জন্য বিক্রেতার.জেএস তৈরি করি two প্লাগইনগুলি যেমন jQuery রয়েছে তাদের নির্ভরতা হিসাবে ব্যবহার করার জন্য আমি কী করব এবং আমি সেগুলি বিক্রেতার.জেজেও রাখতে চাই? যদি এই প্লাগইনগুলির একাধিক নির্ভরতা থাকে?
বর্তমানে আমি এই jQuery প্লাগইনটি এখানে ব্যবহার করার চেষ্টা করছি - https://github.com/mbklein/jquery-elastic । ওয়েবপ্যাক ডকুমেন্টেশনে প্লাগিন এবং আমদানি-লোডার সরবরাহের উল্লেখ রয়েছে । আমি সরবরাহ প্লাগিন ব্যবহার করেছি, তবে এখনও jQuery অবজেক্ট উপলব্ধ নেই। এখানে আমার ওয়েবপ্যাক.কমফিগ.জেগুলি দেখতে কেমন-
var webpack = require('webpack');
var bower_dir = __dirname + '/bower_components';
var node_dir = __dirname + '/node_modules';
var lib_dir = __dirname + '/public/js/libs';
var config = {
addVendor: function (name, path) {
this.resolve.alias[name] = path;
this.module.noParse.push(new RegExp(path));
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jquery: "jQuery",
"window.jQuery": "jquery"
}),
new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js', Infinity)
],
entry: {
app: ['./public/js/main.js'],
vendors: ['react','jquery']
},
resolve: {
alias: {
'jquery': node_dir + '/jquery/dist/jquery.js',
'jquery.elastic': lib_dir + '/jquery.elastic.source.js'
}
},
output: {
path: './public/js',
filename: 'bundle.js'
},
module: {
loaders: [
{ test: /\.js$/, loader: 'jsx-loader' },
{ test: /\.jquery.elastic.js$/, loader: 'imports-loader' }
]
}
};
config.addVendor('react', bower_dir + '/react/react.min.js');
config.addVendor('jquery', node_dir + '/jquery/dist/jquery.js');
config.addVendor('jquery.elastic', lib_dir +'/jquery.elastic.source.js');
module.exports = config;
তবে এটি সত্ত্বেও, এটি ব্রাউজার কনসোলে এখনও একটি ত্রুটি ছুঁড়েছে:
আনকড রেফারেন্স এরিয়ার: jQuery সংজ্ঞায়িত করা হয় না
একইভাবে, আমি যখন আমদানি-লোডার ব্যবহার করি তখন এটি একটি ত্রুটি ফেলে দেয়,
প্রয়োজন সংজ্ঞায়িত করা হয় না '
এই লাইনে:
var jQuery = require("jquery")
যাইহোক, আমি যখন আমার vendors.js ফাইলে এটি যুক্ত না করি তখন আমি একই প্লাগইনটি ব্যবহার করতে পারি এবং তার পরিবর্তে এটি আমার অন্যান্য জাভাস্ক্রিপ্ট কোড ফাইলগুলিকে কীভাবে অন্তর্ভুক্ত করে তা স্বাভাবিক এএমডি পদ্ধতিতে প্রয়োজন হয়-
define(
[
'jquery',
'react',
'../../common-functions',
'../../libs/jquery.elastic.source'
],function($,React,commonFunctions){
$("#myInput").elastic() //It works
});
তবে এটি আমি যা করতে চাই তা নয়, কারণ এর অর্থ হ'ল jquery.elastic.source.js আমার জাভাস্ক্রিপ্ট কোডটি বান্ডেল.জেজে বান্ডিল করা হয়েছে এবং আমি চাই আমার সমস্ত jQuery প্লাগইনগুলি বিক্রেতার.জেএস বান্ডলে থাকুক। তাহলে আমি কীভাবে এটি অর্জন করতে যাব?