RequireJS - NodeJS

Node 适配器可以与 Require 的实现和 Node 的搜索路径一起使用。如果没有 RequireJS 使用的模块配置,则可以使用现有的基于 Node 的模块而无需更改它们。您可以使用 npm 命令将节点包安装在项目的 node_modules 目录中。

Node 将仅从本地磁盘加载模块,并且仅当模块由 RequireJS 加载时,才会应用诸如 map、packages、paths 等配置选项。

安装 Node

您可以使用以下命令安装 Node 适配器,该命令将安装最新版本的文件 −

npm install requirejs

您也可以通过以下方式安装 Node −

  • 您可以从此链接下载 r.js 并将其保存在您的项目中文件夹。

  • r.js 存储库获取源代码,或通过 node dist.js 安装。

Node 的使用

要使用 node,您需要有 require('requirejs') 并将配置中的 require 函数移动到顶层 main.js 文件。

例如 −

var requirejs = require('requirejs');

requirejs.config({
    //将模式模块加载到顶层 JS 文件
    //通过将顶层 main.js require 函数传递给 requirejs
    nodeRequire: require
});

requirejs(['name1', 'name2'],
   function (name1, name2) {
    //通过使用 requirejs 配置,name1 和 name2 被加载
    //如果 node 的 require 没有找到这些,则会加载模块
   }
);

使用 AMD 或 RequireJS 构建节点模块

您可以使代码模块与 RequireJS 和 Node 一起工作,而无需库的用户,然后使用 amdefine 包来完成这项工作。

例如 −

if (typeof define !== 'function') {
   var define = require('amdefine')(module);
}

define(function(require) {
    var myval = require('dependency');
    
    //函数返回的值可以用作
    //对 Node 可见的模块。
    return function () {};
});

优化器作为 Node 模块

Node 模块使用 RequireJS 优化器作为优化方法,通过使用函数调用而不是使用命令行工具。

例如 −

var requirejs = require('requirejs');

var config = {
   baseUrl: '../directory/scripts',
   name: 'main',
   out: '../build/main-built.js'
};

requirejs.optimize(config, function (buildResponse) {

    //使用 buildResponse 指定模块的文本输出
    //并加载构建的文件内容
    //使用 config.out 获取优化的文件内容
   	var contents = fs.readFileSync(config.out, 'utf8');
}, function(err) {
   //优化错误回调的代码
});