Questions tagged «require»

在诸如Lua,PHP和Ruby之类的解释语言中,“ require”是一个语句,它告诉解释器在放置“ require”语句的位置上包括某个源文件。


7
为什么Ruby 1.9.2删除“。” 从LOAD_PATH,还有什么选择?
Ruby 1.9.2的最新变更集不再使当前目录.成为您的的一部分LOAD_PATH。我有大量的Rakefiles假定.是Rakefile的一部分LOAD_PATH,所以这使它们中断了(它们报告说,所有基于项目路径的require语句都“没有要加载的文件”)。是否有这样做的特殊理由? 至于修复,$: << "."在任何地方添加都可以,但是似乎难以置信,我不想这样做。使我的Rakefiles 1.9.2+兼容的首选方法是什么?
154 ruby  rake  require  load-path 

5
要求文件为字符串
我正在使用node + express,我只是想知道如何将任何文件导入为字符串。可以说我有一个txt文件,我想要的只是将其加载到这样的变量中。 var string = require("words.txt"); 我反对 modules.exports = function(){ var string = "whatever"; return string; }

8
无法重新声明块作用域变量(打字稿)
我正在构建一个节点应用程序,并在.js文件中的每个文件内使用了此程序,以在各种软件包中进行此操作。 let co = require("co"); 但是得到 等等。因此,使用打字稿似乎在整个项目中只能有一个这样的声明/要求?我对此感到困惑,因为我认为let范围仅限于当前文件。 我刚刚有一个正在运行的项目,但是经过重构之后,到处都是这些错误。 有人可以解释吗?

9
使用Webpack基于环境的条件构建
我有一些要开发的东西-例如,我不想让我的分布式构建文件肿的模拟。 在RequireJS中,您可以在插件文件中传递配置,然后根据需要进行配置。 对于webpack,似乎没有办法做到这一点。首先创建一个环境中运行时配置我用resolve.alias重新指向根据环境,例如要求: // All settings. var all = { fish: 'salmon' }; // `envsettings` is an alias resolved at build time. module.exports = Object.assign(all, require('envsettings')); 然后,在创建webpack配置时,我可以动态分配envsettings指向的文件(即webpackConfig.resolve.alias.envsettings = './' + env)。 但是我想做类似的事情: if (settings.mock) { // Short-circuit ajax calls. // Require in all the mock modules. } 但是很明显,如果环境不是模拟的,我不想构建那些模拟文件。 我可能可以再次使用resolve.alias手动将所有这些要求重新指向存根文件-但是有没有一种方法可以减少恶意程度? 有什么想法可以做到吗?谢谢。

7
NodeJs:TypeError:require(…)不是一个函数
我试图要求一个文件,然后将其传递给var。我正在按照本教程创建身份验证系统。编写server.js文件并尝试编译后,出现bson错误,因此我更改了需要它的发行版本的猫鼬代码。 这是我的代码和错误: server.js require('./app/routes')(app, passport); 错误 require('./app/routes')(app, passport); ^ TypeError: require(...) is not a function at Object.<anonymous> (d:\Node JS learning\WorkWarV2\server.js:38:24) at Module._compile (module.js:434:26) at Object.Module._extensions..js (module.js:452:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:475:10) at startup (node.js:117:18) at node.js:951:3 Process finished with exit code 1 我已经读到这通常意味着requireJS无法正确加载,但我不知道为什么或如何修复它。 根据评论进行编辑: 根据要求,这是console.log(require);

8
浏览器内JavaScript是否需要节点样式?
浏览器内的JavaScript是否有提供与Node相同的灵活性/模块化/易用性的库require? 提供更多细节:原因require如此好: 允许从其他位置动态加载代码(在我看来,这在样式上比在HTML中链接所有代码要好) 它为构建模块提供了一致的界面 模块很容易依赖其他模块(因此,我可以编写一个需要jQuery的API,以便我可以使用 jQuery.ajax() 加载的javascript是作用域的,这意味着我可以加载var dsp = require("dsp.js");并且可以访问dsp.FFT,而不会干扰本地var FFT 我还没有找到可以有效执行此操作的库。我倾向于使用的解决方法是: coffeescript-concat-需要其他js很容易,但是您必须对其进行编译,这意味着它对于快速开发(例如,在测试中构建API)的功能不太好 RequireJS-它很流行,简单易用,可解决1-3,但是缺乏作用域是一个真正的难题(我相信head.js的相似之处在于它缺乏作用域,尽管我从未有过使用它的机会。同样,LABjs可以加载并.wait()确实缓解依赖关系问题,但仍不进行范围界定) 据我所知,似乎有许多动态和/或异步加载javascript的解决方案,但它们往往具有与仅从HTML加载js相同的范围问题。最重要的是,我想要一种加载javascript的方法,它完全不会污染全局名称空间,但是仍然允许我加载和使用库(就像节点的require一样)。 2020年更新: 模块现已成为ES6中的标准组件,并且自2020年中期开始,大多数浏览器都原生支持这些模块。模块支持同步和异步(使用Promise)加载。我当前的建议是,大多数新项目应使用ES6模块,并使用转译器回退到旧版浏览器的单个JS文件。 作为一般原则,今天的带宽通常也比我最初提出这个问题时要宽得多。因此,在实践中,您可能会合理地选择始终将转译器与ES6模块一起使用,并将精力集中在代码效率而不是网络上。 以前的编辑(或者,如果您不喜欢ES6模块):自编写此文档以来,我已经广泛使用RequireJS(现在它的文档更加清晰)。在我看来,RequireJS确实是正确的选择。我想澄清一下该系统如何为像我一样困惑的人们工作: 您可以require在日常开发中使用。模块可以是函数(通常是对象或函数)返回的任何东西,范围可以作为参数。您还可以将项目编译为单个文件以进行部署r.js(实际上,尽管require可以并行加载脚本,但这样做几乎总是更快)。 RequireJS和节点样式的require之间的主要区别在于,例如browserify(tjameson建议一个很酷的项目)使用的是模块的设计和需求方式: RequireJS使用AMD(异步模块定义)。在AMD中,require获取要加载的模块(javascript文件)列表和回调函数。加载每个模块后,它将使用每个模块作为回调的参数来调用回调。因此,它确实是异步的,因此非常适合Web。 节点使用CommonJS。在CommonJS中,require是一个阻塞调用,它将加载模块并将其作为对象返回。这对于Node来说效果很好,因为文件是从文件系统中读取的,速度足够快,但在Web上效果不佳,因为同步加载文件可能需要更长的时间。 实际上,许多开发人员在使用AMD之前就已经使用过Node(因此也使用了CommonJS)。此外,许多库/模块是为CommonJS(通过向exports对象添加内容)而不是为AMD(通过从define函数返回模块)而编写的。因此,许多由Node.com转变为Web的开发人员都希望在Web上使用CommonJS库。这是可能的,因为<script>标签的加载受到阻碍。诸如browserify之类的解决方案采用CommonJS(Node)模块并将其包装起来,以便可以将它们包含在脚本标签中。 因此,如果您正在开发自己的Web多文件项目,强烈建议使用RequireJS,因为它确实是Web的模块系统(尽管公平地公开,我发现AMD比CommonJS自然得多)。最近,区别变得不那么重要了,因为RequireJS现在允许您实质上使用CommonJS语法。此外,RequireJS可用于在Node中加载AMD模块(尽管我更喜欢node-amd-loader)。


5
node.js中的require()如何工作?
我尝试了这个: // mod.js var a = 1; this.b = 2; exports.c = 3; // test.js var mod = require('./mod.js'); console.log(mod.a); // undefined console.log(mod.b); // 2 console.log(mod.c); // 3, so this === exports? 所以我想象require()可能是这样实现的: var require = function (file) { var exports = {}; var run = function (file) { // …

2
Node.js“需要”功能和参数
当我做: lib = require('lib.js')(app) 是app真的通过了? 在lib.js中: exports = module.exports = function(app){} 似乎不行,因为当我尝试做的不只是(app)做,而是做: lib = require('lib.js')(app, param2) 和: exports = module.exports = function(app, param2){} 我不明白params2。 我尝试通过以下方式进行调试: params = {} params.app = app params.param2 = "test" lib = require("lib.js")(params) 但是当我尝试在lib.js中出现JSON.stringify此错误时: "DEBUG: TypeError: Converting circular structure to JSON"

2
在Rails中,require,require_dependency和常量重载有何关系?
如何require与require_dependency不同? 如何require_dependency自动重载开发中的类却require不能自动重载? 我深入研究了RailsActiveSupport::Dependencies和dispatcher.rb代码。我在require_dependency的代码中看到的基本上是将常量添加到autoloaded_constants数组中。但是clear_application每次请求后,它都会在内部调度程序中清除。 有人可以给出清晰的解释或向我指出一些有用的资源吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.