【发布时间】:2015-06-25 21:32:32
【问题描述】:
我正在编写一个 javascript 库,其中包含一个核心模块和几个
扩展核心模块的可选子模块。我的目标是浏览器
环境(使用 Browserify),我希望我的模块的用户只会
想要使用我的一些可选子模块,而不必将其余的下载到
客户端——就像在lodash 中工作的自定义构建一样。
我想象的这种工作方式:
// Require the core library
var Tasks = require('mymodule');
// We need yaks
require('mymodule/yaks');
// We need razors
require('mymodule/razors');
var tasks = new Tasks(); // Core mymodule functionality
var yak = tasks.find_yak(); // Provided by mymodule/yaks
tasks.shave(yak); // Provided by mymodule/razors
现在,假设mymodule/* 命名空间有数十个这样的子模块。这
mymodule 库的用户只需要承担
她使用的子模块,但不需要像这样的离线构建过程
lodash 使用:像 Browserify 这样的工具为我们解决依赖关系图
只包含所需的代码。
是否可以使用 Node/npm 以这种方式打包某些东西?我有错觉吗?
更新:答案 over here 似乎表明这是可能的,但我无法从 npm 文档中弄清楚如何实际构建文件和 package.json。
假设我有这些文件:
./lib/mymodule.js
./lib/yaks.js
./lib/razors.js
./lib/sharks.js
./lib/jets.js
在我的package.json 中,我将拥有:
"main": "./lib/mymodule.js"
但是node如何知道./lib/下的其他文件呢?
【问题讨论】:
标签: javascript node.js npm browserify