草庐IT

Random模块

全部标签

javascript - 我正在试用 Grunt,需要一种简单的方法来连接我的模块

这是我第一次使用Grunt,我想让它结合我所有的js模块,每个模块都包装在一个立即执行的函数中,包含一个“usestrict”声明并将它们放入一个文件中,包装只有一个立即执行的函数,只有一个“使用严格”声明。这通常是如何完成的?我认为这是一个常见的用例?也许我以错误的方式处理事情?我是否应该使用其中一种模块加载格式(即commonjs、amd)所有这些文件将始终一起加载到浏览器中,所以如果人们通常这样做的话,我实际上不介意删除所有立即执行的函数。重要的部分是最终结果以某种方式包装,通过lint和单元测试并包含“使用严格”声明。(我应该澄清一下,我确实让它工作、检查、单元测试、连接和缩小

javascript - 从 Javascript 使用 Typescript 模块

我想使用Typescript模块创建一个项目,但允许它从vanillajavascript使用。假设它包含3个模块,每个模块包含一个类,A、B和C。即A.ts:exportdefaultclassA{/*things*/}B.ts:exportdefaultclassB{/*things*/}C.ts:exportdefaultclassC{/*things*/}所有这些都使用webpack构建并捆绑到一个dist.js文件中。我希望图书馆的用户能够做一些类似于varfoo=newLettersLibrary.A();我该怎么做,最终目标是能够利用typescript模块进行开发,但提

javascript - ES6 模块 - 为什么命名的 const 导出不是只读的

我去过readingaboutESmodules并进行实验并偶然发现了一个我无法解释的案例://settings.jsexportconstFOO=42;exportconstBAR=5;//main1.jsimport*assettingsfrom'./settings';settings.FOO=1;//main2.jsimport{FOO,BAR}from'./settings'FOO=1;在main1.js中,我可以通过settings变量覆盖const值,但在main2.js中我不能(正如预期的那样)。(理论上的)问题是为什么在第一种情况下可以覆盖const值?创建“只读Vi

javascript - 在 javascript 中使用像 requirejs 或 commonjs 模块这样的 AMD 有什么好处?

我阅读了很多关于AMD解决方案的文章,例如RequireJS或在Javascript中遵循CommonJS风格的模块加载器。假设我有一个分为以下几个部分的应用:依赖于我使用的框架的应用定义依赖于App定义和框架的模型1依赖应用程序定义的模型2、模型1和我的框架我可以将每个部分编写为RequireJS模块或通用JS模块,然后将我的项目拆分为我想要的文件,但是将每个部分编写为模块或将它们拆分为多个文件然后将它们加载到正确的顺序(以避免依赖性问题)可能将所有文件连接成一个大文件以减少HTTP请求(如r.js优化器所做的那样)? 最佳答案

javascript - 如何在 AngularJS 中声明子模块

在使用AngularJS处理大型项目时,我发现我喜欢按功能组织代码。这意味着当我有一些可识别的功能X(特别是如果它是可重用的)时,我创建目录X并将属于该功能的所有Controller、服务和其他部分放入其中。我还声明了一个名为X的新模块,并将目录X中的所有内容分配给该模块。目录结构看起来像这样:scripts/app.jscontrollers/services/directives/filters/X/controllers/services/directives/filters/在app.js中有一个主模块声明:angular.module('myApp',['X']);X/中的所

javascript - 为什么是模块模式?

我已经阅读了很多关于模块模式的文章。好的,它带来了结构、私有(private)方法等……但是使用下面的代码我可以在不使用它的情况下获得相同的行为。functionHuman(){//privatepropertiesvar_name='';var_age=0;//privatemethodsfunctioncreated(){console.log("Human"+_name+"called");};//publicthis.setName=function(name){_name=name;created();};}varh1=newHuman();h1.setName("John"

javascript - JavaScript 中的这三种模块模式实现有什么区别?

我见过以下三个代码块作为JavaScript模块模式的示例。有什么区别,为什么我会选择一种模式而不是另一种模式?模式一functionPerson(firstName,lastName){varfirstName=firstName;varlastName=lastName;this.fullName=function(){returnfirstName+''+lastName;};this.changeFirstName=function(name){firstName=name;};};varjordan=newPerson('Jordan','Parmer');模式二functi

module-pattern - 创建模块的多个实例

我以为我已经开始很好地理解JavaScript,但显然不是。让我用一个例子来解释我的问题。首先,我定义了以下模块:varTest=function(){varcounter=0;functioninit(){alert(counter);}return{counter:counter,init:init}};然后我创建了2个实例:vartest1=newTest();vartest2=newTest();现在我更新计数器变量(因为它是公共(public)的)并发出一些警报。到目前为止一切顺利。alert(test1.counter);//Alerts0test1.counter=5;a

javascript - angularjs 在不同文件中为同一模块定义服务

我有两个文件,我在其中定义了我的Angular应用程序中的服务,但是当我尝试在我的指令中同时使用它们时,我收到一条错误消息,指出找不到我定义第二个指令的服务提供者。似乎一项服务正在覆盖另一项服务。如果我将service2.js中的模块定义更改为myapp.services2,那么它就可以工作。我想我可以通过这种方式将多个工厂添加到同一个模块。有人可以指出我做错了什么吗?服务1.js:varservices=angular.module('myapp.services',[]);services.factory('Service1',function(){//servicecode});

javascript - 允许模块与 AMD/CommonJs 或脚本标签一起工作的包装器?

我刚刚尝试包装我们的一个模块,该模块将通过包含在内在一些样板中标记以允许使用requirejs加载可选的AMD。这很痛苦,我能想到的最好办法是:(function(){varexports,jQuery;if(typeofwindow.define==='function'&&typeofwindow.requirejs==='function'){exports={};define(['jquery'],function(jq){jQuery=jq;returnthisModule();});}else{exports=window;jQuery=window.jQuery;this