独角鲸网


通用JavaScript平台

Narwhal是一个跨平台、多解释器、通用JavaScript平台。它旨在为构建JavaScript应用程序提供坚实的基础,主要是在web浏览器之外。Narwhal包括一个包管理器、模块系统和用于多个JavaScript解释器的标准库。目前,独角鲸对犀牛的支持是最完整的,但其他发动机也有。

Narwhal的标准库符合CommonJS标准。它被设计为与多个JavaScript解释器一起工作,并且很容易添加对新解释器的支持。只要可能,它都是用纯JavaScript实现的,以最大限度地在引擎之间重用代码。

Narwhal与Jack(一个类似Rack的JSGI兼容库)相结合,为创建服务器端JavaScript web应用程序和框架(如Nitro)提供了一个平台。

主页:

文档

注:如果您在GitHub上查看此内容,以下链接将无效。请在文档/目录此存储库的。

快速入门

下载Narwhal。

  • 下载并解压缩zip或tar存档,或
  • git克隆git://github.com/280north/narwhal.git

把独角鲸放在你的路径环境变量。

  • export PATH=$PATH:~/norwhal/bin,或
  • 源独角鲸/箱/激活

运行独角鲸js型(它们是等效的)。

  • js独角鲸/examples/hello

看看独角鲸的选择。

  • js—帮助

对于Tusk,包管理器和虚拟环境工具。

  • 象牙帮助

我的第一个Web服务器

创建一个项目“hello-web”。

象牙初始化hello-webcd你好web

使用将项目输入为“虚拟环境”激活这样,当您运行Narwhal时,它的库、二进制文件和包就会自动安装。

源箱/激活

垃圾桶/海水

安装一些您需要的包,比如Jack,用于互操作web服务的JSGI标准库。

象牙安装千斤顶

Tusk在“hello-web/packages/jack”下载并安装。

创建您的jackconfig.js.

exports.app=函数(env){var text=“你好,Web!”;返回{状态:200,标题:{“Content-Type”:“text/plain”,“Content-Length”:字符串(text.Length)},正文:[text]};};

快跑!

自升式起重机

自升式平台查找名为jackconfig.js或者您可以指定Jack应用程序的路径。

正常开放本地主机:8080/在您的web浏览器中。

模块系统基础

Narwhal“脚本”是与CommonJS兼容的模块,很像Python或Ruby模块。您不必使用模块模式样板;每个模块都有自己的本地作用域。您可以通过调用要求.

var FS=要求(“文件”);FS.isFile(“foo.txt”);

的模块标识符要求有三种风格:“顶级”、“相对”和“绝对”。在上述情况下,文件是“顶级”标识符,因此它将加载任何调用文件.js在中图书馆加载路径中最先出现的包的目录。相对标识符有...作为其第一个术语,和术语用分隔/所以,在foo/bar(英尺/巴)模块,要求('./baz)将加载foo/baz公司绝对模块标识符不应直接使用,而是在模块路径外执行程序模块时生成的。模块由其完全限定的路径标识,从/.

可以通过将对象指定给出口.

exports.foo=函数(){return“你好”;};

在模块中,您还可以获得模块具有模块.id模块路径属性,以便您可以检查自己的顶级模块标识符和自己的模块文件的路径。您还可以获得require.main公司属性,该属性告诉您启动程序的模块的顶级模块标识符。

if(require.main==模块)main();var设置=require(require.main);var FS=require(“文件”);var路径=FS.path(module.path);var indexHtml=路径.resolve(“./template/index.html”).read();

除了CommonJS规范之外,您还可以获得打印函数和系统免费的模块对象。这个打印函数接受可变参数,并将包含由空格分隔的参数的单行写入标准输出和刷新。这个系统模块可以用显式要求require(“系统”)这是受鼓励的,因为这是符合CommonJS的必要条件。不要使用打印系统在标准库中。

包含模块摘要

  • 系统:参数,环境,标准输入,标准输出,标准错误
  • 国际奥委会:字节IO(阅读,,到字节字符串,toString(字符串)),字符串IO(阅读,,复制,脸红,迭代器,对于每个,读一行,读行,下一个,打印,toString(字符串),子串,,子(substr)),国际组织(阅读,,复制,脸红,关闭,伊萨蒂),文本输入流(未经加工的,读一行,下一个,迭代器,对于每个,关闭),文本输出流(,writeLine(写入行),写入行,打印,脸红,关闭)
  • 文件:打开,阅读,,复制,链接,符号链接,重命名,移动,去除,mkdir公司,mkdirs(mkdir),rmdir(远程管理目录),rmtree(rmtree),触摸,chmod公司,大杂烩,列表,列表树,列表目录树,copyTree(复制树),是绝对的,is相对,isDrive(isDrive),可读,是可写的,地球仪,全局路径,fnmatch公司,比赛,无缝线路,cwd路径,参加,分裂,决定,相对的,绝对的,正常的,规范的,,目录名,基名,延伸,路径,新路径(,, …)
  • 操作系统:出口,睡觉,教皇(等待,标准输入,标准输出,标准错误,沟通(地位,标准输入,标准输出,标准错误)),系统,命令,地位,询问
  • 二元的:二元的(到阵列,到字节数组,toByteString,索引属于,最后索引,的值),字节字符串(长度,toString(字符串),分裂,,子(substr),子串,到源),二进制数组(toString(字符串),流行音乐,,向右扩展,取消移位,向左扩展,颠倒,,剪接,分裂,对于每个,每一个,一些,地图,减少,减少右侧,置换,到源)
  • 断言:断言错误,失败,好 啊,平等的,不相等,深度相等,非深度相等,strictEqual(严格相等),非严格相等,投掷,断言(通过,错误,部分)
  • 测试:运行,日志(脸红,通过,失败,错误,开始,结束,报告,打印,部分,断言),章节(打印)
  • 实用程序:操作人员,,对象,阵列,一串,应用,复制,deepCopy(深度复制),代表,钥匙,,项目,伦恩,,得到,设置,获取设置,,,第一,最后的,更新,深度更新,完成,deepComplete(深度完成),去除,范围,对于每个,用于每个应用,地图,地图应用,每一个,一些,全部的,任何,减少,减少右侧,拉链,转置,列举,,等式,,书信电报,gt公司,,通用电气,穆尔,通过,比较,分类,已排序,颠倒,颠倒的,搞砸,独特的,逃跑,询问,扩大,修剪,修剪开始,修剪结束,pad开始,焊盘端,拆分名称,joinName(联合名称),降低,上面的,骆驼,标题
  • http协议:打开,阅读
  • ,沙阿256,md5型,md4型,crc32型:搞砸
  • utf8接口,底座64,基数16:编码,解码
  • jsmin(最小值):编码
  • 杰森路径:决定
  • 记录器:记录器(添加,格式)
  • 参数:分析程序(解析,选项, (_,__,名称,显示名称,获取名称,获取显示名称,行动,设置,,股份有限公司,12月,选择,定义,验证,输入,输出,,十月,十六进制,整数,自然的,整体,布尔,托多,反向,帮助,停止,隐藏的),(选项),定义,重置,命令,参数,参数,行为,行动,有益的,使用,帮助,打印帮助,打印使用,打印命令,打印选项,打印选项,错误,出口,打印,检查),使用错误,配置错误
  • 学期:(使可能,使残废,写入代码,打印,打印错误,,更新,移动到,移动方式,,清楚的,清除,清除Down,clearLine(清除线路),清除右侧,错误(打印,)),颜色,流动
  • 乌伊德:乌伊德
  • 哑剧演员:最佳匹配,解析MimeType,解析MediaRange,适合度和质量已分配,已分析的质量,质量
  • html格式:转义HTML,条带标签
  • 参考-发送,承诺,事件:什么时候,推迟(决定,拒绝,承诺),
  • 事件-停止:排队
  • 打印:打印,格式化输出,把格式数据写成串
  • 查询字符串:联合国环境规划署,逃跑,纤细的,parseQuery(解析查询)
  • 沙箱:沙盒
  • 装载机:装载机(决定,解决Pkg,找到,取来,负载,重新加载,已加载,已更改,路径,扩展),决定,解决Pkg
  • 包装:秩序,目录
  • 口译译员:上下文(评估,导入脚本,导入脚本,模块,功能)
  • 拉链:解压缩,解压缩(迭代器,对于每个,关闭),条目(获取名称,是目录,打开,阅读,复制)

©版权所有.Narwhaljs。保留所有权利。条款|站点地图