RequireJS - NodeJS
Node 适配器可以与 Require 的实现和 Node 的搜索路径一起使用。如果没有 RequireJS 使用的模块配置,则可以使用现有的基于 Node 的模块而无需更改它们。您可以使用 npm 命令将节点包安装在项目的 node_modules 目录中。
Node 将仅从本地磁盘加载模块,并且仅当模块由 RequireJS 加载时,才会应用诸如 map、packages、paths 等配置选项。
安装 Node
您可以使用以下命令安装 Node 适配器,该命令将安装最新版本的文件 −
npm install requirejs
您也可以通过以下方式安装 Node −
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) { //优化错误回调的代码 });