草庐IT

NAPI模块

全部标签

javascript - ReactJS:如何更模块化地使用对象的 Prop 类型和形状?

我喜欢明确指定每个类的所有Prop类型。React.createClass({propTypes:{optionalArray:React.PropTypes.array,optionalBool:React.PropTypes.bool,...这是来自阅读可重用组件:https://facebook.github.io/react/docs/reusable-components.html但是,如果我有一个在许多类中使用的非常常见的对象怎么办?例如:varMemoryForm=React.createClass({propTypes:{memory:React.PropTypes.s

javascript - RequireJS - 将参数传递到模块进行初始化

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtoloadbootstrappedmodelsinBackbone.jswhileusingAMD(require.js)我目前正在为我们的一个项目创建一个RESTfulAPI,并且还想提供一个Javascript库来访问它。因为我喜欢AMD原理和使用require.js,所以我也会提供一个AMD模块。问题是:模块的初始化需要一些信息,例如初始化时的APIkey。如何在初始化时将这些参数传递给模块?

javascript - Coffeescript 中带有隐藏变量的模块模式

深入研究Coffeescript我正在尝试将我的Javascript文件移植到Coffeescript。关于这个,我有一个与DoulgasCrockford的模块模式相关的问题(闭包绑定(bind)以保持变量“私有(private)”)因此我的问题是:以下JS的等效Coffeescript会是什么样子:vartest=function(){varhidden='open';return{open:hidden};}();分别来说,在Coffeescript中是否有针对此模式的不同/更好的方法? 最佳答案 我认为最好的方法是借助do关

javascript - requirejs 模块别名/重新映射

我目前正在将外部代码集成到我们的应用程序中。在这个过程的一部分,我必须用我们的替换他们的一个requirejs模块。显然我不能修改他们的代码,否则我必须在每次更新时进行更改。我能做的就是修改main.js(requirejs的data-main)。大致来说,这是他们拥有的东西:requirejs.config({packages:['beerpong']});所以他们有这个beerpong包,里面有一些模块。在这些模块中,有一个beer.js文件。它可以通过require('beerpong/beer')来要求。除此之外,我还有我的文件,在一个单独的文件夹中,比如vodkapong/b

javascript - 运行 React App 时找不到模块 '@babel/plugin-transform-react-jsx-source'

我刚刚使用create-react-appaquastars创建了一个React应用程序,然后使用yarnruneject弹出依赖项,当我运行该应用程序时,我得到以下信息错误。Cannotfindmodule'@babel/plugin-transform-react-jsx-source'我什么都没做!我需要做什么才能启动并运行它?任何帮助将不胜感激。 最佳答案 solutionby@xiaobo实际上对我来说是不够的。将expo升级到v32后,我花了一段时间才弄清楚这一点,所以这就是我所做的,以防其他人遇到同样的问题。(来自ex

JavaScript 模块模式 - 使用 "return this"怎么样?

在阅读了一些有关模块模式的内容后,我看到了几种返回您想要公开的属性的方法。除了私有(private)属性和方法之外,最常见的方法之一是在“return”语句中声明您的公共(public)属性和方法。一种类似的方式(“揭示”模式)是提供对您希望公开的属性和方法的简单引用。最后,我看到的第三种技术是在模块函数内创建一个新对象,在返回所述对象之前将新属性分配给该对象。这是一个有趣的想法,但需要创建一个新对象。所以我在想,为什么不直接使用this.propertyName来分配你的公共(public)属性和方法,最后使用returnthis呢?这种方式对我来说似乎更简单,因为您可以使用通常的v

javascript - 找不到 Angular 6 setTimeout 模块 : Error: Can't resolve 'timers'

我有一个问题。我想在2秒后以Angular使用setTimeout来调用一个函数,但我得到了这个:ERROR:Modulenotfound:Error:Can'tresolve'timers';thisismyfunction:login(user){console.log(user.value);this.loginService.loginUser(user.value);//this.user=this.loginService.getUser();setTimeout(()=>{this.user=this.loginService.getUser();},2000);if(t

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