为什么需要browserify`path`定义?
链接https://github.com/jhades/angularjs-gulp-example/blob/master/gulpfile.js有使用browserify paths
的gulp build-js
任务定义。 我不明白它的需要…是不是可能只是将条目指定为entries: './js/**/*.js',
这将导致它search所有子entries: './js/**/*.js',
目录以及…而不是明确指定paths: ['./js/controllers', './js/services', './js/directives'],
这是所有同一父目录的子目录?
任何提示赞赏。
作者正在使用paths
configuration来启用非相对的require
调用,如下所示:
require('todoCtrl'); require('todoStorage'); require('todoFocus'); require('todoEscape'); require('footer');
Browserify模拟了Node的模块parsing机制( 这里解释了这个机制),当Nodeparsing一个非相对require
,它会在node_modules
中node_modules
。 paths
选项为Browserify提供了一个不在node_modules中的path列表,它在尝试parsingnon-relative require
调用时应检查( 在检查node_modules
之前 )。
如果您在自己的项目中对所有require
的模块调用都使用相对path(例如require('./js/controllers/todoCtrl')
),则不需要paths
configuration选项。
那么,一个简单的答案似乎是**/*
不能被browserify识别! 你必须require("glob")
这样做,但是使用paths
来指定额外的文件夹可能更简单。