javascript - browserify + tsify + babelify; babel blir ignorert
Jeg vil browserify, tsify og babelify koden min. Browserify og en av de andre transpilerne fungerer, men sammen gjør de det ikke. Babel ser bare ut til å bli ignorert (leser ikke engang .babelrc).
Jeg har følgende gulp-kode:
const gulp = require("gulp");
const browserify = require("browserify");
const source = require('vinyl-source-stream');
const tsify = require("tsify");
const babelify = require("babelify");
function build() {
var b = browserify({
basedir: '.',
debug: true,
cache: {},
entries: ['src/index.ts'],
packageCache: {}
});
return b
.plugin(tsify)
.transform(babelify)
.bundle()
.on("error", function (err) { console.log("Error: " + err.message); })
.pipe(source('build.js'))
.pipe(gulp.dest("build"));
}
gulp.task("build", build);
Med denne babelrc
{
"presets": ["minify"]
}
Og de avhengighetene
"@babel/core": "^7.2.2",
"babel-preset-minify": "^0.5.0",
"babelify": "^10.0.0",
"browserify": "^16.2.3",
"gulp": "^4.0.0",
"tsify": "^4.0.1",
"typescript": "^3.2.2",
"vinyl-source-stream": "^2.0.0"
Som sagt, selv om jeg endrer babelrc til noe som det følgende får jeg ingen feil, det bare minifiserer ikke koden.
Svar #1
Selv om jeg ikke helt vet hvorfor koden ovenfor ikke fungerer, har jeg funnet et alternativ.
Bruk oppsettet som er gitt her. Merk at for at det skal fungere må du endre verdien av module-nøkkelen i tsconfig til å være es5 (i stedet for es6). Slik at det ser slik ut:
{
"compilerOptions": {
"outDir": "build",
"module": "es5",
"moduleResolution": "node",
"target": "es6"
}
}
