【发布时间】:2016-08-27 01:08:38
【问题描述】:
我有一个项目包含 2 个入口点和 2 个 package.json。我在这 2 个文件夹中使用 gulp 来构建 javascript/less 文件。
我想使用常用函数来避免代码重复。 这是结构
- dirA/
- node_modules/
- gulpfile.js
- 目录/
- node_modules/
- gulpfile.js
- 一饮而尽
- bootstrap.js
在 gulp/bootstrap 中,我有类似的东西
'use strict';
global._ = require('lodash');
global.gulp = require('gulp');
global.$ = require('gulp-load-plugins')();
global.argv = require('yargs').argv;
global.source = require('vinyl-source-stream');
global.buffer = require('vinyl-buffer');
global.watchify = require('watchify');
/**
* Handle tasks errors
* @param {Object} err
*/
global.onError = function onError(err) {
if (isProd()) {
$.util.log($.util.colors.red(err));
process.exit(1);
} else {
$.util.log($.util.colors.red(err));
this.emit('end');
}
};
/**
* return true if argv env is prod
* @return {boolean}
*/
global.isProd = function isProd() {
return argv.env === 'prod';
};
global.isWatch = function() {
return !!argv.watch;
};
$.util.log($.util.colors.yellow('Production env: ', isProd()));
$.util.log($.util.colors.yellow('Watch mode: ', isWatch()));
在 dirA/gulpfile 和 dirB/gulpfile 中,我想使用 gulpfile.js 的 require('../gulp/bootstrap');top 导入 gulp/bootstrap。
但是这样做,即使我需要包含 node_modules/ 文件夹的文件夹中的引导文件,require 函数也无法找到 bootstrap.js 中所需的模块。它在 gulp/ 文件夹中搜索 node_modules/...
这是一种告诉 require 使用基本路径的方法吗?喜欢[process.cwd(), 'node_modules'].join('/');
【问题讨论】: