Gulp simple concatenation of main file that requires another JS file(需要另一个 JS 文件的主文件的 Gulp 简单连接)
问题描述
我有一个简单的文件:
main.js:
'use strict';
const somefile = require('somefile')
// class MyClass ...
// some js
我想使用 gulp 创建一个包含 somefile.js 代码的缩小文件.但由于某种原因,我找不到这样做的方法.在我的缩小文件中,我有 require('somefile'),而不是完整的代码.
I want to use gulp to create a minified file that has the code from somefile.js included too. But for some reason, I can't find a way to do this. Inside my minified file I have require('somefile'), not the full code.
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'))
);
我也尝试过 gulp-concat.
我遗漏了一些东西,但不确定是什么.
I'm missing something, but not sure what.
有什么想法吗?
推荐答案
在 resolveDependencies 管道中,您复制了 gulp-resolve-dependencies 将用于查找代码中的任何 require
语句.但是您的 require
看起来与文档示例非常不同.你的:
In the resolveDependencies pipe you copied the default regex pattern which the gulp-resolve-dependencies will use to find any require
statements in the code. But your require
looks very different than the documentation example. Yours:
const somefile = require('somefile')
所以试试这个模式:pattern:/.*requires*('(.*)')/g
这应该捕获括号内的文件(然后自动传递给路径解析器函数).然后连接这些文件.
That should capture the file inside the parentheses (which is then automatically passed to the path resolver function). And then concat those files.
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: /.*requires*('(.*)')/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'))
);
我无法对此进行测试,但它应该会有所帮助.
I haven't been able to test this but it should help.
这篇关于需要另一个 JS 文件的主文件的 Gulp 简单连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:需要另一个 JS 文件的主文件的 Gulp 简单连接
基础教程推荐
- 我什么时候应该在导入时使用方括号 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 动态更新多个选择框 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 响应更改 div 大小保持纵横比 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01