如何使 Gulp 任务将项目的每个 jsx 文件转换为不同的.js文件
How to make a Gulp task to transform each jsx file of a project into different .js file?
我的项目中有一些 React 文件 (.jsx),我需要使用 Gulp 任务将它们中的每一个转换为不同的.js文件(遵循相同的目录结构)。
所以,澄清一下,我不想使用像 Browserify.boudle() 这样的东西,因为它会给我留下一个转换后的.js文件。
如果你使用 gulp-react,它会将它们重命名为自动.js
以及转译:
var gulp = require('gulp')
var react = require('gulp-react')
gulp.task('transpile-js', function() {
return gulp.src('./src/**/*.jsx')
.pipe(react({harmony: true}))
.pipe(gulp.dest('./lib'))
})
这是我的 Gulpfile:
它使用gulp-babel
,可以替代gulp-react
。
gulpfile.js
/// <binding BeforeBuild='minify' Clean='clean' />
"use strict";
var gulp = require("gulp"),
del = require("del"),
cssmin = require("gulp-cssmin"),
uglify = require("gulp-uglify"),
babel = require("gulp-babel"),
debug = require("gulp-debug"),
rename = require("gulp-rename");
var paths = {
wwwroot: "./wwwroot/"
};
paths.css = paths.wwwroot + "css/site/**/*.css";
paths.minCss = paths.wwwroot + "css/site/**/*.min.css";
paths.js = paths.wwwroot + "js/site/**/*.js";
paths.minJs = paths.wwwroot + "js/site/**/*.min.js";
paths.babelJsx = paths.wwwroot + "jsx/**/*.jsx";
paths.babelJs = paths.wwwroot + "jsx/**/*.js";
paths.babelMinJs = paths.wwwroot + "jsx/**/*.min.js";
gulp.task("clean-js", function (cb) {
return del([
paths.minJs
]);
});
gulp.task("clean-jsx-js", function (cb) {
return del([
paths.babelJs
]);
});
gulp.task("clean-jsx-minjs", function (cb) {
return del([
paths.babelMinJs
]);
});
gulp.task("clean-jsx", ["clean-jsx-js", "clean-jsx-minjs"]);
gulp.task("clean-css", function (cb) {
return del([
paths.minCss
]);
});
gulp.task("clean", ["clean-js", "clean-jsx", "clean-css"]);
gulp.task("transpile", function () {
return gulp.src([paths.babelJsx], { base: "." })
.pipe(debug({ title: 'babel:' }))
.pipe(babel({
presets: ["es2015", "react"]
}))
.pipe(gulp.dest("."))
.pipe(debug({ title: 'babel:' }));
});
gulp.task("minify-js", function () {
return gulp.src([paths.js, "!" + paths.minJs], { base: "." })
.pipe(debug({ title: 'minify-js:' }))
.pipe(uglify())
.pipe(rename({
suffix: ".min"
}))
.pipe(gulp.dest("."))
.pipe(debug({ title: 'minify-js:' }));
});
gulp.task("minify-jsx", ["transpile"], function () {
return gulp.src([paths.babelJs, "!" + paths.babelMinJs], { base: "." })
.pipe(debug({ title: 'minify-jsx-' }))
.pipe(uglify())
.pipe(rename({
suffix: ".min"
}))
.pipe(gulp.dest("."))
.pipe(debug({ title: 'minify-jsx-' }));
});
gulp.task("minify-css", function () {
return gulp.src([paths.css, "!" + paths.minCss], { base: "." })
.pipe(debug({ title: 'minify-css:' }))
.pipe(cssmin())
.pipe(rename({
suffix: ".min"
}))
.pipe(gulp.dest("."))
.pipe(debug({ title: 'minify-css:' }));
});
gulp.task("minify", ["transpile", "minify-js", "minify-jsx", "minify-css"]);
相关文章:
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 我可以将为java创建的语法文件转换为javascript的语法文件吗
- 使用 php 将 pdf 文件转换为 html 文件
- 如何将xml文件转换为javascript中的对象文字
- 将Markdown文件转换为PDF,同时剥离Jekyll Front Matter
- 将CSV文件转换为JSON数组JS
- 如何在collectionFS中将文件转换为流星中的jpeg
- 将文件转换为数组并使用数据列表和选项标签为自动完成文本框添加数组元素
- 如何在 JavaScript 中将文件转换为 base64
- 将从jquery接收的文件转换为字节数组
- 如何将JSON格式的文件转换为JSON对象
- 如何在 JavaScript 中将文本文件转换为 JSON
- 在nodejs中将excel文件转换为json
- 如何将 Base64 文件转换为 javascript 中的实际文件/原始文件并将其下载到客户端
- 是否可以使用 Javascript 或 jQuery 将 mp3 文件转换为 m4r
- 将JavaScript文件转换为dll文件
- 如何将PHP文件转换为代码点火器
- 如何使 Gulp 任务将项目的每个 jsx 文件转换为不同的.js文件
- 如何使用javascript将SVG文件转换为JSPDF中的PDF
- 将 Excel 文件转换为 HTML 和 JavaScript