require

lua加载函数require和dofile

試著忘記壹切 提交于 2019-12-30 01:52:19
Lua提供高级的require函数来加载运行库。粗略的说require和dofile完成同样的功能但有两点不同 : 1. require会搜索目录加载文件; 2. require会判断是否文件已经加载避免重复加载同一文件。 由于上述特征,require在Lua中是加载库的更好的函数。 (一) require   require使用的路径和普通我们看到的路径还有些区别,我们一般见到的路径都是一个目录列表。require的路径是一个模式列表,每一个模式指明一种由 虚文件名 ( require的参数)转成实文件名的方法。更明确地说,每一个模式是一个包含可选的问号的文件名。匹配的时候Lua会首先将问号用虚文件名替换,然后看是否有这样的文件存在。如果不存在继续用同样的方法用第二个模式匹配。例如,路径如下: ?;?.lua;c:\windows\?;/usr/local/lua/?/?.lua 调用require "test"时会试着打开这些文件: test test.lua c:\windows\test /usr/local/lua/test/test.lua require关注的问题只有分号(模式之间的分隔符)和问号,其他的信息(目录分隔符,文件扩展名)在路径中定义。   为了确定路径,Lua首先检查 全局变量LUA_PATH 是否为一个字符串,如果是则认为这个串就是路径

node.js中模块,require

99封情书 提交于 2019-12-30 01:00:38
在php,C++中都有命名空间的概念,命名空间主要是用来解决引入文件存在函数,类,变量重名的问题,在node.js中,没有命名空间这么复杂的概念,在node中,有模块的概念,也就是将功能性的代码都放在一起。然后引入,在本文件中使用。这种不会出现函数名,变量重名问题,在引入的模块中,都是以导入的方式注册的。看下面的例子: //circle.js var pi = 3.14; //计算圆的周长 exports.circle = function(r) { return 2 * pi * r; } //计算圆的面积 exports.area = function(r) { return pi * r * r; } ~ var circle = require('./circle'); console.log(circle.circle(2)); console.log(circle.area(3)); ~ 1、这样上面的pi在引入的文件中是没有作用的,它只在circle.js中局部有效。然后exports.设置属性,然后可以回调函数使用这两个函数 注意: 1、如果是目录引入,默认会引入目录下面的index.js这个文件,否则要指定模块名,可以省略.js后缀。 2、使用require引入模块的时候,这个是一个io同步操作的,所以最好是在文件的开头就引入,如果在io量大的地方再引入

Node的require和module.exports

China☆狼群 提交于 2019-12-30 01:00:07
node编程中最重要的思想之一就是模块,在 Node.js 模块系统中,每个文件都被视为独立的模块。这是这个思想,让javascript的大规模工程成为可能。模块化编程在前端大肆盛行,在node中导出: var list = {a:function(){},b:'xxxx'}; module.exports = list; module.exports是node私有的一个全局变量属性。require进行引入node导出的接口内容,可以将require看做node内置的全局函数。一般情况下是: const app = require('koa');import $ form 'jquery'; 直接赋值给一个变量,require是赋值过程。这里跟ES6的import区分,import是一个解构过程。 来源: https://www.cnblogs.com/tangjiao/p/9579128.html

node里require()引用

别说谁变了你拦得住时间么 提交于 2019-12-30 00:59:57
npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已。格式如下: npm install 包名 # 本地安装 npm install -g 包名 # 全局安装 具体区别: 1、安装模块包位置: 1)全局安装时,会把模块下载到“全局目录”中,【全局目录】通过 npm config set prefix "目录路径" 来设置。通过 npm config get prefix 来获取当前设置的目录。 2)本地安装是,会把模块下载到当前命令行所在目录,c:\123>npm install xxx 将会安装到 c:\123\node_modules\xxx 这种方式显然是不好的,所以一般都会使用全局安装方式统一安装的一个目录中去,这样既方便管理、结构清晰还可以重复利用。 2、调用方式: 1)全局的安装是供命令行(command line)使用的,比如grunt,全局安装的方式是没有办法用require调用包的; 注:使用全局模式安装的包并不能直接在 JavaScript 文件中用 require 获得,因为 require 不会搜索 /usr/local/lib/node_modules/。 2)本地安装可以直接通过require()的方式引入;var moduleName = require('moduleName') 注

node初识——node中的require方法与require.js的区别

柔情痞子 提交于 2019-12-30 00:59:18
出处:http://blog.csdn.net/u013613428/article/details/51966500 作为一个前端的新手,总是诧异于js的模块载入方式,看到了通过requireJs提供的require()命令之后,发现node也是通过类似的方法加载模块,我就好奇,这两个是一个东西吗?用electron写了一个web desk app,想通过CI上建一个job刷新repository,然后通过网页可以在team里面随时share软件的进度和功能,发现通过浏览器直接打开的这个app没法加载其他的库: 当时候分析,问题在于electron是一个基于Node的platform,整个app的打开必须通过node main.js (electron的main.js),一层一层的往下加载。这时的require是由node提供的。那能不能通过先加载requireJs,然后由requireJs来加载呢? 简单试了一下,不行。百度了一下,发现requirejs 用的AMD 规范而node 用的是Commonjs 。如果你加载的库不符合AMD规范,也就是没有用define()函数包裹,那requireJs不能简单的完成加载,这时就需要用require.config()进行配置。 具体可参考:http://blog.csdn .NET /u013613428/article

node.js中的require

送分小仙女□ 提交于 2019-12-30 00:58:51
初初接触node.js,印象最深刻的就是开头密密麻麻的require了。 这是什么东西? 其实也没啥大惊小怪的。require就是为了引用别的js文件,利于模块化编程,重用、以及避免过多代码挤在同一个文件里,就像.net的using,java的import,c++的#include一样。 对于这个require,有以下一些要点: 1、require可以是系统模块、第三方模块、自己写的JS文件,甚至有可能是一个目录! 1、require("http");//系统模块 2、require("socket.io");//第三方模块 3、require("./login");//自定义文件 4、require("./user");//同层目录并无一个叫user.js的文件,但有一个[user]文件夹,其下有许多js,其中有一个index.js,再在index.js里require文件夹下其他JS 对于第4种,会这样使用: /user/下有文件 index.js login.js regist.js 那么在index.js下会这样写: exports.login = require("./login"); exports.regist = require("./regist"); 然后 /app.js中这样写: var user = require("./user"); user.login

前端模块化

痞子三分冷 提交于 2019-12-30 00:58:40
前端模块规范有三种:CommonJs,AMD和CMD。 CommonJs用在服务器端,AMD和CMD用在浏览器环境 AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。 CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。 AMD:提前执行(异步加载:依赖先执行)+延迟执行 CMD:延迟执行(运行到需加载,根据顺序执行) 一.模块 以前使用JS的方式要更改,以前只能说是JS的最初级应用,现在对JS应该使用模块化写法. 好处: 模块就是实现特定功能的文件,把几个函数放在一个文件里就构成了一个模块。需要的时候加载这个文件,调用其中的函数即可。 但这样做会污染全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间没什么关系。 简单的例子: var module = (function(){     var star = 0;     var f1 = function (){       alert('ok');     };     var f2 = function (){       //...     }; return { f1:f1, f2:f2 };   })(); module.f1(); //ok alert(module.star) //undefined 因为start并没有return出来 二.CommonJs

javascript之模块加载方案

拈花ヽ惹草 提交于 2019-12-30 00:58:08
前言 主要学习一下四种模块加载规范: AMD CMD CommonJS ES6 模块 历史 前端模块化开发那点历史 require.js requirejs 为全局添加了 define 函数,你只要按照这种约定的方式书写这个模块即可。 define(function () { //Do setup work here return { color: "black", size: "unisize" } }); //my/shirt.js now has some dependencies, a cart and inventory //module in the same directory as shirt.js define(["./cart", "./inventory"], function(cart, inventory) { //return an object to define the "my/shirt" module. return { color: "blue", size: "large", addToCart: function() { inventory.decrement(this); cart.add(this); } } } ); 以上示例代码 来源 于require.js官网 demo代码详见 https://github.com

nodejs、数据库(基本指令)基础要点总结

徘徊边缘 提交于 2019-12-30 00:55:39
这是一个md文件 大家觉得需要可以直接复制粘贴到md文件下用html打开看,这样效果会好点 ### 客户端的JavaScript是怎样的 - 什么是 JavaScript? +是一个脚本语言 +运行在浏览器(浏览器的js解析内核 v8) +实现用户的交互 (interactive) + 变量 赋值 循环 逻辑 判断 分支 对象 函数。。。。 + dom 操作 + bom 操作 + ajax - JavaScript 的运行环境? +浏览器内核解析内核 es6 - 浏览器中的 JavaScript 可以做什么? - 浏览器中的 JavaScript 不可以做什么?(不安全) +访问数据库 +不能对文件进行操作 +对os 进行操作 +原因 是不安全 和浏览器运行机制有关 - 在开发人员能力相同的情况下编程语言的能力取决于什么? +cordova hbuilder 平台 platform +java java虚拟机 (运行平台) +php php虚拟机 +c# .net framework mono +js 解析内核 chrome v8 - JavaScript 只可以运行在浏览器中吗? +不是 ### 为什么是JavaScript + node js 不是因为js 产生的 + node 选择了js + Ryan dahl + 2009 2 月份 node有想法 + 2009 5 月份

ES6 import equivalent of require() without exports

蓝咒 提交于 2019-12-29 04:27:10
问题 By using require(./filename) I can include and execute the code inside filename without any export defined inside filename itself. What is the equivalent in ES6 using import ? Thanks 回答1: The equivalent is simply: import "./filename"; Here are some of the possible syntax variations: import defaultMember from "module-name"; import * as name from "module-name"; import { member } from "module-name"; import { member as alias } from "module-name"; import { member1 , member2 } from "module-name";