我有一个简单的文件:
文件main.js
'use strict';
const somefile = require('somefile')
// class MyClass ...
// some js我想使用Gulp.js创建一个小型化的文件,其中也包含了来自somefile.js的代码。但出于某种原因,我找不到办法做到这一点。在我缩小的文件中,我有require('somefile'),,而不是完整的代码。
文件gulpfile.js
const gulp = require('gulp');
const minify = require('gulp-minify');
const babel = require('gulp-babel');
const include = require("gulp-include");
const sourcemaps = require('gulp-sourcemaps');
const jsImport = require('gulp-js-import');
const resolveDependencies = require('gulp-resolve-dependencies');
gulp.task('default', () =>
gulp.src('src/main.js')
.pipe(sourcemaps.init())
.pipe(resolveDependencies({
pattern: /\* @requires [\s-]*(.*\.js)/g
}))
.pipe(jsImport({hideConsole: true}))
.pipe(babel({
presets: ['@babel/env']
}))
.pipe(minify({
ext: {
min: '.min.js'
}
}))
.pipe(gulp.dest('dist'))
);我也试过和一饮而尽,。
我遗漏了一些东西,但不确定是什么。我怎么才能解决这个问题?
发布于 2018-09-14 20:33:02
在resolveDependencies管道中,您复制了默认的regex模式,吞咽-解析-依赖将使用该模式查找代码中的任何require语句。但是您的require看起来与文档示例非常不同。你的:
const somefile = require('somefile')因此,尝试以下模式:pattern: /\.*require\s*\('(.*)'\)/g
这将捕获括号内的文件(然后自动传递给路径解析器函数)。然后把这些文件连接起来。
const gulp = require('gulp');
const minify = require('gulp-minify');
const babel = require('gulp-babel');
// const include = require("gulp-include"); you don't need this
const sourcemaps = require('gulp-sourcemaps');
// const jsImport = require('gulp-js-import'); you don't need this
const resolveDependencies = require('gulp-resolve-dependencies');
const concat = require('gulp-concat');
gulp.task('default', () =>
gulp.src('src/main.js')
.pipe(sourcemaps.init())
.pipe(resolveDependencies({
pattern: /.*require\s*\('(.*)'\)/g
}))
// added the following:
.pipe(concat('a filename here'))
.pipe(babel({
presets: ['@babel/env']
}))
.pipe(minify({
ext: {
min: '.min.js'
}
}))
// added the following:
.pipe(sourcemaps.write('some destination folder for the soucemaps'))
.pipe(gulp.dest('dist'))
);我还不能测试这个,但它应该会有帮助的。
https://stackoverflow.com/questions/52338233
复制相似问题