คำถามติดแท็ก requirejs

RequireJS คือไฟล์ JavaScript และตัวโหลดโมดูล ได้รับการปรับให้เหมาะสมสำหรับการใช้งานในเบราว์เซอร์ แต่สามารถใช้ในสภาพแวดล้อม JavaScript อื่น ๆ เช่น Rhino และ Node.js หากคุณใช้การเรียกที่ต้องการที่มาพร้อมกับ Node.js แสดงว่าคุณไม่ได้ใช้ RequireJS โปรดอย่าใช้แท็กนี้ในกรณีดังกล่าว ใช้แท็กต้องใช้แทน

5
ความสัมพันธ์ระหว่าง CommonJS, AMD และ RequireJS?
ฉันยังคงสับสนเกี่ยวกับCommonJS, AMDและRequireJSมากแม้หลังจากอ่านมาก ฉันรู้ว่าCommonJS (เดิมชื่อServerJS ) เป็นกลุ่มสำหรับการกำหนดข้อกำหนดJavaScript (เช่นโมดูล) เมื่อมีการใช้ภาษานอกเบราว์เซอร์ ข้อกำหนดคุณสมบัติโมดูลCommonJSมีการนำไปใช้บางอย่างเช่นNode.jsหรือRingoJSใช่ไหม ความสัมพันธ์ระหว่างCommonJS , Asynchronous Module Definition (AMD) และRequireJSคืออะไร? RequireJSคือการนำไปใช้ของนิยามโมดูลCommonJSหรือไม่? ถ้าใช่เอเอ็มดีคืออะไร

14
มันสมเหตุสมผลไหมที่จะใช้ Require.js กับ Angular.js? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันเป็นมือใหม่สำหรับ Angular.js และพยายามเข้าใจว่ามันแตกต่างจาก Backbone.js อย่างไร ... เราใช้ในการจัดการการพึ่งพาแพคเกจของเรากับ Require.js ในขณะที่ใช้ Backbone มันสมเหตุสมผลไหมที่จะทำสิ่งเดียวกันกับ Angular.js?

5
ฉันควรใช้ require () และเมื่อใดควรใช้ define ()?
ฉันได้เล่นรอบกับ requirejs ในช่วงไม่กี่วันที่ผ่านมา ฉันพยายามเข้าใจความแตกต่างระหว่างการกำหนดและการกำหนด กำหนดดูเหมือนว่าจะอนุญาตให้มีการแยกโมดูลและอนุญาตให้มีการเรียงลำดับการพึ่งพา แต่มันจะดาวน์โหลดไฟล์ทั้งหมดที่จำเป็นต้องเริ่มด้วย ในขณะที่ต้องการเพียงโหลดสิ่งที่คุณต้องการเมื่อคุณต้องการมัน สามารถใช้ทั้งสองนี้ร่วมกันได้และใช้เพื่อวัตถุประสงค์อะไร
316 require  requirejs 

12
ป้องกัน RequireJS จากการแคชสคริปต์ที่จำเป็น
RequireJS ดูเหมือนว่าจะทำอะไรบางอย่างภายในว่าแคชจำเป็นต้องใช้ไฟล์จาวาสคริปต์ หากฉันทำการเปลี่ยนแปลงหนึ่งในไฟล์ที่ต้องการฉันจะต้องเปลี่ยนชื่อไฟล์เพื่อให้การเปลี่ยนแปลงมีผล เคล็ดลับทั่วไปของการต่อท้ายหมายเลขรุ่นเป็นพารามิเตอร์การสอบถามถึงจุดสิ้นสุดของชื่อไฟล์ไม่สามารถทำงานกับ requirejs <script src="jsfile.js?v2"></script> สิ่งที่ฉันกำลังมองหาคือวิธีป้องกันการแคชภายในสคริปต์ที่ต้องการของ RequireJS โดยไม่ต้องเปลี่ยนชื่อไฟล์สคริปต์ของฉันทุกครั้งที่มีการอัปเดต โซลูชันข้ามแพลตฟอร์ม: ตอนนี้ฉันกำลังใช้urlArgs: "bust=" + (new Date()).getTime()สำหรับแคชอัตโนมัติในระหว่างการพัฒนาและurlArgs: "bust=v2"สำหรับการผลิตที่ฉันเพิ่มเวอร์ชันที่มีรหัสฮาร์ดโค้ดหลังจากเผยแพร่สคริปต์ที่ต้องการที่อัปเดตแล้ว บันทึก: @Dustin Getz พูดถึงในคำตอบล่าสุดว่าเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Chrome จะวางจุดพักระหว่างการดีบักเมื่อไฟล์ Javascript มีการรีเฟรชอย่างต่อเนื่องเช่นนี้ วิธีแก้ปัญหาหนึ่งคือการเขียนdebugger;โค้ดเพื่อทริกเกอร์เบรกพอยต์ในตัวแก้ไขข้อบกพร่องจาวาสคริปต์ส่วนใหญ่ โซลูชันเฉพาะเซิร์ฟเวอร์: สำหรับวิธีแก้ปัญหาเฉพาะที่อาจทำงานได้ดีขึ้นสำหรับสภาพแวดล้อมเซิร์ฟเวอร์ของคุณเช่น Node หรือ Apache ดูคำตอบด้านล่าง

2
ไม่รวมไฟล์ / ไดเรกทอรีจากภารกิจอึก
ฉันมีงานอึก rjs ที่เชื่อมต่อและทำให้ไฟล์. JSS ที่กำหนดเองของฉัน (libraries ไม่ใช่ไลบรารีผู้จำหน่าย) สิ่งที่ฉันพยายามทำคือแยกบางไฟล์ / ไดเรกทอรีออกจากงานนี้ (ตัวควบคุมและคำสั่ง) นี่คือต้นไม้ของฉัน: - application - resources - js main.js - vendor - jquery - modernzr - angular - controllers - controller1 - controller2 - controller3 - directives - directives1 - directives2 - directives3 - widgets - widget1 - widget2 - …

6
กำลังโหลด Backbone และ Underscore โดยใช้ RequireJS
ฉันกำลังพยายามโหลด Backbone และ Underscore (รวมถึง jQuery) ด้วย RequireJS ด้วย Backbone และ Underscore เวอร์ชันล่าสุดดูเหมือนว่าจะยุ่งยาก สำหรับอันเดอร์ Underscore จะลงทะเบียนตัวเองโดยอัตโนมัติในฐานะโมดูล แต่ Backbone ถือว่า Underscore นั้นสามารถใช้ได้ทั่วโลก ฉันควรทราบด้วยว่า Backbone ดูเหมือนจะไม่ลงทะเบียนตัวเองเป็นโมดูลซึ่งทำให้มันไม่สอดคล้องกับ libs อื่น ๆ นี่คือ main.js ที่ดีที่สุดที่ฉันสามารถคิดได้: require( { paths: { 'backbone': 'libs/backbone/backbone-require', 'templates': '../templates' } }, [ // jQuery registers itself as a module. 'http://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js', // …

2
'define' ใช้สำหรับอะไรใน JavaScript (นอกเหนือจากชัดเจน)
ฉันค้นหาเอกสารเกี่ยวกับเรื่องนี้สูงและต่ำ แต่ก็ไม่พบอะไรเลย ฉันกำลังใช้ Aloha และต้องการใช้ต้นแบบแถบด้านข้างของพวกเขาเพื่อสร้างแถบด้านข้างใหม่ของฉันเองที่แนบมากับฟังก์ชั่นปลั๊กอินอื่น ๆ sidebar.js ของพวกเขาเริ่มต้นด้วยสิ่งนี้ แต่ฉันไม่สามารถหาเอกสารที่อธิบายความหมายได้ define( [ 'aloha/core', 'aloha/jquery', 'aloha/selection' ], function (Aloha, jQuery, Selection, Plugin) { จากนั้นมันก็จะปรากฏขึ้นใน wrapper นั้นเพื่อกำหนดฟังก์ชั่นมากมายvarsและบางอันproptotypes- ซึ่งฉันทำได้แค่เอาหัวไปรอบ ๆ ... คำพูดนั้นหรือฉันจะหาคำอธิบายได้ที่ไหน

4
ความแตกต่างระหว่าง Require.js และเพียงแค่สร้างองค์ประกอบ <script> ใน DOM คืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ อะไรคือความแตกต่างระหว่างการใช้ Require.JS และเพียงแค่สร้าง&lt;script&gt;องค์ประกอบใน DOM ความเข้าใจใน Require.JS ของฉันคือมันมีความสามารถในการโหลดการพึ่งพา แต่สิ่งนี้ไม่สามารถทำได้โดยการสร้าง&lt;script&gt;องค์ประกอบที่โหลดไฟล์ JS ภายนอกที่จำเป็นหรือไม่ เช่นให้ถือว่าผมมีฟังก์ชั่นที่ต้องใช้ฟังก์ชั่นdoStuff() อยู่ในแฟ้มภายนอกในขณะที่อยู่ในแฟ้มภายนอกneedMe()doStuff()do_stuff.jsneedMe()need_me.js การทำเช่นนี้ Require.JS วิธี: define(['need_me'],function(){ function doStuff(){ //do some stuff needMe(); //do some more stuff } }); การทำสิ่งนี้โดยการสร้างองค์ประกอบสคริปต์: function doStuff(){ var scriptElement = document.createElement('script'); scriptElement.src = 'need_me.js'; scriptElement.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(scriptElement); …

7
โมดูล define () ที่ไม่ระบุชื่อไม่ตรงกัน
ฉันได้รับข้อผิดพลาดนี้เมื่อฉันเรียกดูเว็บแอปเป็นครั้งแรก (โดยปกติจะอยู่ในเบราว์เซอร์ที่ปิดการใช้งานแคช) ข้อผิดพลาด: ไม่ตรงกันไม่ระบุชื่อโมดูล define (): function (ต้องใช้) { HTML : &lt;html&gt; . . . &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"&gt;&lt;/script&gt; &lt;script&gt; var require = { urlArgs: "v=0.4.1.32" }; &lt;/script&gt; &lt;script data-main="assets/js/main" src="assets/js/libs/require.js"&gt;&lt;/script&gt; &lt;script src="assets/js/ace/ace.js?v=0.4.1.32"&gt;&lt;/script&gt; &lt;/body&gt; &lt;/html&gt; JS : $(function () { define(function (require) { // do something }); }); ใครทราบแน่ชัดว่าข้อผิดพลาดนี้หมายถึงอะไรและเหตุใดจึงเกิดขึ้น ซอร์สไฟล์การอภิปรายสั้น ๆเกี่ยวกับมันในหน้าปัญหา github

7
ฉันจะจำลองการอ้างอิงสำหรับการทดสอบหน่วยใน RequireJS ได้อย่างไร
ฉันมีโมดูล AMD ที่ฉันต้องการทดสอบ แต่ฉันต้องการจำลองการอ้างอิงแทนการโหลดการอ้างอิงจริง ฉันใช้ requirejs และรหัสสำหรับโมดูลของฉันมีลักษณะดังนี้: define(['hurp', 'durp'], function(Hurp, Durp) { return { foo: function () { console.log(Hurp.beans) }, bar: function () { console.log(Durp.beans) } } } ฉันจะเยาะเย้ยออกhurpและdurpเพื่อให้ฉันได้อย่างมีประสิทธิภาพการทดสอบหน่วย?

8
วิธีปิดการใช้งานคำเตือน 'define' ไม่ได้กำหนดโดยใช้ JSHint และ RequireJS
ฉันใช้ RequireJS AMD ในโครงการของฉัน เมื่อฉันเรียกใช้ jshint ในโครงการของฉันมันจะแสดงข้อผิดพลาดเช่น ใน AMD Scripts 'define' is not defined. ในกรณีทดสอบมอคค่า 'describe' is not defined. 'it' is not defined. จะลบคำเตือนนี้ใน jshint ได้อย่างไร?

4
เหตุใดจึงใช้ Object.prototype.hasOwnProperty.call (myObj, prop) แทน myObj.hasOwnProperty (prop)
ถ้าฉันเข้าใจอย่างถูกต้องแต่ละวัตถุใน JavaScript จะสืบทอดมาจาก Object ต้นแบบซึ่งหมายความว่าแต่ละวัตถุใน JavaScript สามารถเข้าถึงฟังก์ชัน hasOwnProperty ผ่านสายโซ่ต้นแบบได้ ในขณะที่อ่านซอร์สโค้ดของRequireJSฉันสะดุดกับฟังก์ชันนี้: function hasProp(obj, prop) { return hasOwn.call(obj, prop); } hasOwnObject.prototype.hasOwnPropertyมีการอ้างอิงถึง มีความแตกต่างในทางปฏิบัติในการเขียนฟังก์ชันนี้เป็น function hasProp(obj, prop) { return obj.hasOwnProperty(prop); } และเนื่องจากเราอยู่ที่นั่นทำไมเราถึงกำหนดฟังก์ชันนี้เลย? เป็นเพียงคำถามเกี่ยวกับทางลัดและการแคชการเข้าถึงคุณสมบัติในเครื่องเพื่อเพิ่มประสิทธิภาพการทำงาน (เล็กน้อย) หรือฉันพลาดกรณีใด ๆ ที่อาจใช้ hasOwnProperty กับวัตถุที่ไม่มีวิธีนี้หรือไม่?

8
วิธีที่ดีที่สุดในการจัดระเบียบโค้ด jQuery / JavaScript (2013) [ปิด]
มันยากที่จะบอกว่ากำลังถามอะไรที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือมีวาทศิลป์และไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ปัญหา คำตอบนี้ได้รับคำตอบมาก่อน แต่เก่าและไม่ทันสมัย ฉันมีโค้ดมากกว่า 2,000 บรรทัดในไฟล์เดียวและอย่างที่เราทราบกันดีว่านี่เป็นการปฏิบัติที่ไม่ดีโดยเฉพาะอย่างยิ่งเมื่อฉันกำลังมองหาโค้ดหรือเพิ่มคุณสมบัติใหม่ ๆ ฉันต้องการจัดระเบียบรหัสของฉันให้ดีขึ้นทั้งในตอนนี้และในอนาคต ฉันควรพูดถึงว่าฉันกำลังสร้างเครื่องมือ (ไม่ใช่เว็บไซต์ธรรมดา ๆ ) ที่มีปุ่มมากมายองค์ประกอบ UI การลากวางผู้ฟัง / ตัวจัดการการกระทำและฟังก์ชันในขอบเขตทั่วโลกซึ่งผู้ฟังหลายคนอาจใช้ฟังก์ชันเดียวกัน ตัวอย่างรหัส $('#button1').on('click', function(e){ // Determined action. update_html(); }); ... // Around 75 more of this function update_html(){ .... } ... โค้ดตัวอย่างเพิ่มเติม สรุป ฉันจำเป็นต้องจัดระเบียบรหัสนี้เพื่อการใช้งานที่ดีที่สุดและไม่ต้องทำซ้ำตัวเองและสามารถเพิ่มคุณสมบัติใหม่และอัปเดตโค้ดเก่าได้ ฉันจะทำงานนี้ด้วยตัวเอง ตัวเลือกบางตัวสามารถเป็นโค้ดได้ 100 บรรทัดอื่น …

5
Requirejs domReady plugin เทียบกับ Jquery $ (document) .ready ()?
ฉันใช้ RequireJS และจำเป็นต้องเตรียมใช้งานบางอย่างบน DOM ให้พร้อม ตอนนี้ RequireJS มีdomReadyปลั๊กอินแต่เรามี jQuery อยู่แล้ว$(document).ready()ซึ่งมีให้สำหรับฉันเนื่องจากฉันต้องการ jQuery ดังนั้นฉันจึงมีสองทางเลือก: ใช้domReadyปลั๊กอิน: require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); }); ใช้$(document).ready(): $(document).ready(function() { // Do my stuff here... }); ฉันควรเลือกแบบใดและเพราะเหตุใด ตัวเลือกทั้งสองดูเหมือนจะทำงานตามที่คาดไว้ ฉันไม่มั่นใจในตัว jQuery เพราะ RequireJS กำลังใช้เวทมนตร์ นั่นคือเนื่องจาก RequireJS จะเพิ่มสคริปต์แบบไดนามิกฉันกังวลว่า DOM ready อาจเกิดขึ้นก่อนที่สคริปต์ที่ร้องขอแบบไดนามิกทั้งหมดจะโหลด ในขณะที่ …

2
วิธีใช้ไลบรารีภายนอกที่ไม่ใช่ typescript จาก typescript ที่ไม่มี. d.ts
ฉันได้กำหนดสิ่งเหล่านี้ในไฟล์. html ของฉัน: &lt;script type="text/javascript" src="bower_components/tree.js/tree.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="bower_components/q/q.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="test.js"&gt;&lt;/script&gt; จากนั้นใน test.js: var myTree = Tree.tree({}) แต่ข้อผิดพลาด typescript แจ้งว่า: "ไม่พบชื่อ 'Tree'" ฉันได้ลองรวบรวม--module amdและวางimport Tree = require("model/tree");ที่ด้านบนของไฟล์ test.js แล้ว แต่ก็เกิดข้อผิดพลาดอีกครั้ง: Cannot find external module 'model/tree'.อย่างไรก็ตามชัดเจนว่าควรเป็นการนำเข้าที่ถูกต้องโปรดดูที่ที่กำหนดไว้ที่นี่: https://github.com/marmelab/tree .js / blob / master / src / main.js ฉันไม่ต้องการเขียนไฟล์. d.ts สำหรับไฟล์ javascript …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.