2016-02-07 8 views
23

मैं अपने प्रतिक्रिया जेएस/रेडक्स एप्लिकेशन में कुछ jQuery UI कार्यक्षमता का उपयोग करने की कोशिश कर रहा हूं। मैं का उपयोग कर दोनों jQuery और jQuery यूआई आयात किया है:ES6/ES7 वाक्यविन्यास का उपयोग कर jQuery UI को आयात करने के लिए कैसे?

npm install jquery jquery-ui 

और फिर मैं कोशिश की है:

import $ from 'jquery'; 
import jQuery from 'query'; 
import jQuery-ui from 'jquery-ui'; 

हालांकि jQuery यूआई जब मैं की तरह कुछ करने की कोशिश आयात करने के लिए प्रतीत नहीं होता:

componentDidMount() { 
    $('ol#myList').selectable(); 
} 

मेरा मानना ​​है कि यह समस्या jQuery UI के साथ है। मैं क्या गलत कर रहा हूं? इस स्टैक के साथ काम करने के लिए मैं jQuery UI कैसे प्राप्त कर सकता हूं?

धन्यवाद!

+0

"काम नहीं करता है "? आप उस रेखा को कहां लिख रहे हो? यह संभावना है कि तत्व अभी तक प्रारंभ नहीं हुआ है, इसलिए आपको 'घटकडिडमाउंट' कॉलबैक – ZekeDroid

+0

का उपयोग करना चाहिए, क्या आप '$ 'आयात करने के बाद' console.log ($) 'करने का प्रयास कर सकते हैं? –

+0

@ZekeDroid क्षमा करें, यह 'घटकडिडमाउंट()' में था, मैंने अपना प्रश्न संपादित किया। –

उत्तर

3

घटक नाम jQueryUI (कोई हाइफ़न), import jqueryui from 'jquery-ui' या बस import 'jquery-ui'

+0

लोड नहीं कर रहा है, जब मैं इसे आज़माता हूं, तो मुझे यह त्रुटि मिलती है जब मैं चलाने का प्रयास करता हूं:' कर ' फ़ाइल निष्पादित करें:/pathToRoot/bin/server।जेएस त्रुटि दी गई थी: TypeError: ऑब्जेक्ट फ़ंक्शन (डब्ल्यू) { अगर (! w.document) { नई त्रुटि फेंक दें ("jQuery को दस्तावेज़ के साथ एक विंडो की आवश्यकता है"); } रिटर्न फैक्ट्री (डब्ल्यू); } में ऑब्जेक्ट पर uuid (/pathToRoot/node_modules/jquery-ui/jquery-ui.js:15:3) पर कोई विधि 'विस्तार' नहीं है। (/pathToRoot/node_modules/jquery-ui/jquery-ui.js:316:3) मॉड्यूल._कंपाइल (मॉड्यूल.जेएस: 456: 26) पर मॉड्यूल._extensions..js (module.js: 474: 10) (** बाकी के लिए अगली टिप्पणी देखें **) –

+0

आवश्यकता पर .extensions। (अनाम कार्य) (/pathToRoot/node_modules/babel-core/lib/api/register/node.js221477) पर Object._module3.default._extensions। (अनाम कार्य) [as .js] (/ pathToRoot/node_modules/आवश्यकता-हैकर/बेबेल-पारदर्शी-मॉड्यूल/हैकर.जेएस की आवश्यकता है: 250: 71) मॉड्यूल.लोड (मॉड्यूल) पर। जेएस: 356: 32) मॉड्यूल._लोड (मॉड्यूल.जेएस: 312: 12) पर Function.module._load (/pathToRoot/node_modules/piping/lib/launcher.js:32:16) मॉड्यूल.क्रक्वाययर पर (module.js: 364: 17) ' –

+0

यदि यह वाई उपयोगी होगा कहां समस्या को पुन: उत्पन्न करने के लिए न्यूनतम निर्भरताओं के साथ एक साधारण परियोजना साझा कर सकते हैं। – Alfiyum

26

मैं सफलतापूर्वक jQueryUI से आंशिक आयात उपयोग कर रहा हूँ का उपयोग करें।

import $ from 'jquery'; 
import 'jquery-ui/themes/base/core.css'; 
import 'jquery-ui/themes/base/theme.css'; 
import 'jquery-ui/themes/base/selectable.css'; 
import 'jquery-ui/ui/core'; 
import 'jquery-ui/ui/widgets/selectable'; 

(लेकिन खाते है कि मैं webpack https://webpack.github.io/ उपयोग कर रहा हूँ में ले भिन्न हो सकती है अन्य पर्यावरण दृष्टिकोण में,)

+0

सिस्टमजेएस/जेएसपीएम का उपयोग करके, यह दृष्टिकोण मेरे लिए काम करता है लेकिन '!' जोड़ने की आवश्यकता है सीएसएस आयात के अंत तक, उदा। 'आयात' jquery-ui/themes/base/core.css! '' – greenlaw

1

में एक अन्य नाम जोड़ें: मैं अपने मॉड्यूल मैं केवल क्या jQuery-ui से जरूरत के लिए आयात का मतलब webpack config:

resolve: { 
    alias: { 
    'jquery-ui': 'jquery-ui-dist/jquery-ui.js' 
    } 
} 
उन्हें बचाना package.json में

:

npm i --save jquery 
npm i --save jquery-ui-dist 

फिर

import $ from 'jquery'; 
import 'jquery-ui'; 

पिछले jQuery (3.2.1) और jQuery-ui (1.12.1) के साथ मेरे लिए काम।

विस्तार के लिए मेरे ब्लॉग देखें: http://code.tonytuan.org/2017/03/webpack-import-jquery-ui-in-es6-syntax.html

4

मैं पहली बार,

npm install jquery-ui-bundle --save 

जब मैं इसकी आवश्यकता है, मैं

import 'jquery-ui-bundle'; 
import 'jquery-ui-bundle/jquery-ui.css'; 
शुरुआत, आप से क्या मतलब है के लिए
+0

' - सेव 'को स्पष्ट करने के लिए बस लाइब्रेरी शामिल है क्योंकि इसे मैन्युअल रूप से संपादित नहीं किया जा रहा है। यदि आपको कस्टम कोड के साथ कुछ भी संशोधित करने की आवश्यकता है तो आप '--save-dev' का उपयोग करेंगे – Callat

संबंधित मुद्दे