npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

requirejs-config-sugar

v0.5.0

Published

简化 requirejs 的配置

Downloads

11

Readme

requirejs-config-sugar

作用:简化使用 requirejs 打包时,引用模块文件前的处理操作,参考 jQuery 打包时的处理,即项目会被打包成一个 UMD 的文件,供浏览器、Node 等场景下使用。

Getting Started

安装

npm install requirejs-config-sugar

引入模块

var rjsCfg_sugar = require("requirejs-config-sugar");

使用

根据模块名称的编译,示例如下

模块名称 | 模块内容 | 编译结果 :---|:---|:--- tpl/name1 | function(){} | var tpl_name1 = function(){} var/fn1 | function(){} | var fn1 = function(){} text!var/tpl/name2.html | html字符串... | var tpl_name2 = 'html字符串...' text!obj/name3.html | html字符串... | obj.name3 = 'html字符串...' obj/name4 | function(){} | obj.name4 = function(){} 上方中实现的提前配置如下:

{common:{
    objectModuleDir:["obj"],
    varModuleDir:["var","tpl"],
    ...
},...}

的 obj 目录,需添加配置 objectModuleDir:["obj"]

简要示例如下:

// entry.js
define([
"core",
"fn/name1",
"var/fn1",
"text!var/tpl/name2.html",
"text!TPL/name3.html",
"TPL/name4",
], function(Fn) {
    Fn.xxx2 = tpl_name2;
    
    // 全局命名空间
    var spaceName="TPL";
    // console.log("main.complete");
    if( window[spaceName] ){
    	$.extend(window[spaceName],Fn);
    }else{
    	window[spaceName] = Fn;
    }
    
    return Fn;

});

// core.js
define([], function() {
    var Fn = {
    	fieldname1:1,
    	fieldname2:function(){
        
    	}
    };
    return Fn;
});

更多写法可以通过阅读项目示例体会 test/app

其中 var、TPL、Fn ,目前均为保留字段名!

方法

config(options)

建议配置至少一条记录,options 为对象,其中包含如下参数 | 字段名称 | 作用 | 备注 | | :------------- |:-------------| :-----| | common | 通用参数设置 | 与 records 字段配置内容相同,只是在此配置后,在每一条记录都会生效 | | records | 每条记录参数设置 | 设置对象字段请 参考 | 示例:

rjs_sugar.config({
    "common":{
        "name":"entry",
        "optimize":"none",
        // 自义定参数
        "speedTaskEnter":0, // 任务进入执行队列中最小间隔时间 
        "onBuildWriteAfter":function(moduleName, path, contents){
        	// onBuildWrite 之后执行的回调 
        	return contents;
        },
        "varModuleDir":['var'] // 通过模块名称转化为定义语法,例:var xxx = ...
        "objectModuleDir":[] // 通过模块名称转化为对象注册属性语法,例:Obj.attr = ...
    },
    "records":{
        "recordsName1":{
            "baseUrl": 'dirname1/',
            "out": 'build/file1_build.js'
        },
        "recordsName2":{
            "baseUrl": 'dirname2/',
            "out": 'build/file2_build.js'
        },
    }
});

pack(recordname, callback)

通过配置记录执行打包

参数 | 作用 :---|:--- recordName | config设置的记录名称 callback | 打包执行后的回调函数 示例:

rjs_sugar.optimize("gf",cbfn);

optimize(config, callback)

通过传入配置参数执行打包 参数 | 作用 :---|:--- config | requirejs 打包配置,请 参考 callback | 打包执行后的回调函数 示例:

rjs_sugar.optimize({
    name: 'entry',
    out: 'build.js'
},cbfn);

matchRecord( path, runPack, callback)

通过传入文件的绝对路径,获取匹配的配置记录。且可立即执行打包。 参数 | 作用 | 默认值 :---|:---|:--- path | 文件的绝对路径,建议使用 path.resolve() | runPack | 立即执行打包 | false callback | 打包执行后的回调函数 |

返回:匹配记录的名称

示例:

var recordName = rjs_sugar.matchRecord( path.resolve('./dirname1/xxx.js'), true, function(name,options){
    console.log(name); // recordsName1
    console.log(options); // { "baseUrl":'dirname1/', "out":'build/file1_build.js' }
} );
console.log( recordName ); // recordsName1

ChangeLog

0.5.0

  • 对 xxx = require(...) 的支持

0.4.0

  • 对rjs参数 findNestedDependencies 的支持

0.3.0

  • 新增自定义配置参数 varModuleDir
  • 重写内部模块解析,放弃原先内置对模板名称中 TPL、Fn 的解析。之前版本可通过配置 varModuleDir、objectModuleDir 来升级

0.2.0

  • 新增自定义配置参数 onBuildWriteAfter、objectModuleDir
  • 提示:可能不兼容之前的版本

0.1.3

  • fix matchRecord 回调执行的bug

0.1.2

  • 使用 uojo-kit 模块来替换 log,新增参数 speedTaskEnter
  • 互换 pack 与 optimize 的方法的使用

0.1.1

  • 修复回调执行
  • 将队列顺序执行更改为队列异步执行

0.0.7

  • 新增方法 matchRecord ,用于匹配记录

0.0.6

  • 修复当错误时不提示信息的问题

0.0.5

  • 修改 console.log 显示方式
  • 新增 require(TPL/xxx) 模板时,打包后的内容为 TPL.xxx = ...

0.0.4

  • 添加测试、使用实例
  • 新增 require(text!xxx...) 模板时,打包后的内容挂载方式

0.0.3

  • 添加打包成功后的消息输出