Tag: 需要

模块编程:节点require()和ES6导出

所以我想编程一个模块,但我希望它能与Node的require / module.exports系统和ES6 export关键字一起工作。 我想知道是否有 一个条件expression式,可以让我确定“谁在问这个模块, require()还是import ? 要么 一种实现BOTH module.exports的方式。 export和export没有Node@0.10+ export关键字的怪事。 这主要是因为我的代码与当前可用的技术兼容,并在今年晚些时候在ES6交换机之后向后兼容。 另外,我正在教我的同事使用JS进行编程,并希望帮助他们学习使代码模块化。 由于我们离ES6交换机非常近,所以教他们一个包容性更强的方法比教他们两种方式要求他们记得什么时候使用每个方法更容易。 如果答案是“没有办法”,我只需要教他们一个,并把另一个作为一个小方面的说明。 一如既往,感谢大家提供的任何帮助。 祝你有美好的一天。

Node.jsdynamic相对需要path

我需要能够在dynamic相对path上使用require(),这意味着相对path需要根据当前环境进行更改。 这种情况的最佳做法是什么? 我想到了这样的事情: var module = require(process.env.MY_MODULES_PATH + '/my-module'); 但是环境variables不是很方便。 还有其他的可能吗? 也许使用package.json post-install脚本为我设置环境variables? 也许有一个内置的解决scheme,我不知道节点? 编辑 我刚刚意识到,这是一个特殊情况的require() “嘲笑”。 是否有一个最佳做法,例如如何模拟unit testingrequire() ?

通过browserifydynamic地请求所有文件

我有这个巨大的文件,我要求在目录中的所有文件: require('./adminAppConfig'); require('./breadcrumb/BreadcrumbController'); require('./calendar/CalendarController'); require('./calendar/calendarDirective'); require('./chart/ChartController'); require('./dashboard/DashBoardController'); require('./email/EmailController'); require('./error/ErrorController'); require('./event/EventController'); require('./navbar/NavbarController'); require('./navbar/navbarDirective'); require('./service/ServiceController'); require('./sidebar/SidebarController'); require('./warning/WarningController'); require('./common/directives/chartDirective'); require('./common/directives/controllerActionDirective'); require('./common/directives/controllerDirective'); require('./common/directives/emailDirective'); require('./common/directives/dataSidebarDirective'); require('./common/directives/serviceDirective'); require('./common/directives/tableDirective'); require('./common/models/BookingModel'); require('./common/models/EventModel'); require('./common/services/layoutService'); require('./common/services/watchService'); 我想知道是否有可能要求所有没有一一写。 我试图: require('./*.js'); require('./*/*.js'); require('./*/*/*.js'); 但是这不起作用。 谢谢。

需求不能按预期在vm内工作

下面的代码使用本地节点vm库,它允许您在不同的上下文中计算javascriptstring。 example.js的特定代码有一个javascriptstring,它向Array全局variables添加属性.marker ,值为true ,然后需要文件global.js (见下文),然后loggingArray.marker 。 下面的代码logging为true 。 var vm = require('vm') var code = [ 'Array.marker = true', "require('./global.js')", 'console.log(Array.marker)', // => true ].join('\n') var script = new vm.Script(code, { filename: 'example.js' }) script.runInNewContext({ 'require': require, 'console': console }) 以下是global.js的内容,它是一个将Array.marker的值更改为false的简单模块。 var hi = function () { Array.marker = false } module.exports = hi() 这里应该发生的事情是, […]

如何在package.json中定义子模块以使'require('module / submodule')'

我有一个组件库,必须进行编译。 我使用一个文件index.js (和所有其他编译文件)将我的源文件编译为dist文件夹,导出所有这样的组件 /*index.js*/ module.exports = { "component1": require('./components/component1/component1'), "component2": require('./components/component2/component2') } 我有这个设置在我的package.json文件“主”:“./dist”, 所以,我可以要求这个库这样的require('library') 问题:我还想逐个导出我的组件,以便能够部分地要求它们像require('library/component1') 我可以把component1.js文件放在./dist文件夹中,但是它仍然会让我写require('library/dist/component1') 问题:是否有可能让文件保留在“dist”文件夹中?

电子应用在定义/需要各种javascript应用程序时失败

我正在尝试使用电子将网页捆绑到一个应用程序。 我可以做样品应用程序的罚款,但我的网页使用jQuery和各种依赖jQuery的库来操作。 本身,该网站在Web浏览器中正常工作,但通过电子启动时,我会从库的定义/导出语句中获得各种javascript错误。 我的电子应用程序的结构如下: main.js package.json app index.html js/app.js js/lib/jquery.js js/lib/library1.js … 应用程序包含所有依赖于包含库的自定义代码,索引如下所示: <!DOCTYPE html> <html lang="en"> <head> <title>[TITLE]</title> <link rel="stylesheet" href="css/main.css"> </head> <body> <script src="js/lib/jquery.js"></script> <script src="js/lib/library1.js"></script> <script src="js/app.js"></script> </body> </html> Package.json看起来像这样: { "name" : "LosYork", "version" : "0.1.0", "main" : "main.js" } main.js是电子文件,它只是复制快速入门的代码: const electron = require('electron') // Module to control application life. […]

节点模块的require.context不适用于链接的包

我创build了一个插件的网站。 每个插件都遵循特定的名称标准和合同。 在我的main.js中,我按照标准名称“dynamic”加载所有包: const context = require.context("../../node_modules", true, /plugin\-\w+\/dist\/(index\.js|styles\.css)$/) 这需要遍历整个node_modules文件夹,并加载名为“plugin-X”的所有模块。 从这些模块中,它寻找“dist / index.js”和“dist / styles.css”。 那些后来得到导入: context.keys().forEach(path => {/* do stuff */ }) 只要软件包是使用npm install path / to / tgz安装的,就可以工作得非常好。 然而这并没有带来愉快的发展经验。 所以在我的插件X文件夹中使用“npm链接”,在我的网站上我使用“npm链接插件-X”。 当我现在启动webpack时,整个事情在创build15K文件句柄后爆炸。 如果我删除“plugin-X”中的node_modules文件夹,它将起作用。 不过,我需要node_modulesbuild设babel和其他的东西,以识别src文件夹中的更改重build,并将新脚本放入dist文件夹。 有什么办法可以做到这一点? 或者,也许另一个选项,我错过了我的研究如何做到这一点? 问候

深层模块需要非标准的模块结构

好。 所以我想要做的是基本上有一个模块与一堆文件夹在它如下 publicmodulename |-lib |–index.js |-f1 |-index.js |-f2 |-index.js |-f3 |-index.js 所有我想要能够做的是告诉npm,如果用户需要这个包(现在称之为publicmodulename),那么它将正常运行 授予我有我的main键在我的package.json设置为"./lib/index.js" require('publicmodulename'); // runs lib/index.js 但是如果用户需要一个子文件夹 require('publicmodulename/f1'); 它不会错误。 我试了这个,似乎没有太好的工作。 任何人有任何build议?

ReferenceError:require没有定义(node.js)

我试图从我的node.js服务器运行一个node.js脚本。 问题是我导入的模块require()不再工作,而所有的模块和文件都在同一个文件夹中。 var mysql = require('mysql'); ^ ReferenceError: require is not defined at evalmachine.<anonymous>:3:13 at ContextifyScript.Script.runInThisContext (vm.js:25:33) at Object.runInThisContext (vm.js:97:38) at Object.<anonymous> (D:\wamp\www\node_server\test_server.js:8:14) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) 先谢谢你,

单例模式 – require(…)不是一个函数

我已经build立了一个这样的单身devise的类。 该文件被称为helpers.js。 class Helpers { //Code } let singleton; /** * @returns {Helpers} */ const getHelpers = (options) => { if (!singleton) { singleton = new Helpers(options); } return singleton; }; module.exports = getHelpers; 这意味着我第一次必须这样做 const helpers = require('./helpers')(options); 而每一次,我只需要做: const helpers = require('./helpers')(); 出于某种原因,我不断收到 TypeError: require(…) is not a function 我的require需要正确的文件,我的VSCode自动更正说,要求它会给我一个函数,返回一个Helpers ,并require(''')()将返回一个Helpers 。 我不知道什么是错的。 […]