Я работаю в проекте, в котором есть несколько файлов .ts и некоторые файлы .js. Я работаю с Grunt для приложения SmartTV Tizen.
В настоящее время у меня есть этот Gruntfile:
'use strict';
module.exports = function(grunt) {
grunt.initConfig({
jshint: {
options: {
jshintrc: '.jshintrc',
},
src: ['www/**/*.js']
},
clean: ['platforms/sectv-orsay/www/**/*' , 'platforms/sectv-orsay/build/*' , 'platforms/sectv-tizen/www/**/*' , 'platforms/sectv-tizen/build/*', 'platforms/tv-webos/www/**/*' , 'platforms/tv-webos/build/*'],
'sectv-prepare': {
'sectv-orsay': {
dest: 'platforms/sectv-orsay/www',
platformRepos: '../cordova-sectv-orsay',
scripts: {
'cordova.js': '../cordova-js/pkg/cordova.sectv-orsay.js',
'toast.js': '../cordova-plugin-toast/platform_www/sectv-orsay/toast.js'
}
},
'sectv-tizen': {
dest: 'platforms/sectv-tizen/www',
platformRepos: '../cordova-sectv-tizen',
scripts: {
'cordova.js': '../cordova-js/pkg/cordova.sectv-tizen.js',
'toast.js': '../cordova-plugin-toast/platform_www/sectv-tizen/toast.js'
}
},
'tv-webos': {
dest: 'platforms/tv-webos/www',
platformRepos: '../cordova-tv-webos',
scripts: {
'cordova.js': '../cordova-js/pkg/cordova.tv-webos.js',
'toast.js': '../cordova-plugin-toast/platform_www/tv-webos/toast.js'
}
}
},
'sectv-build': {
'sectv-orsay': {
www: 'platforms/sectv-orsay/www',
dest: 'platforms/sectv-orsay/build'
},
//CERTIFICATE LOCATION
'sectv-tizen': {
profilePath: '../../../../../Users/development/tizen-studio-data/profile/profiles.xml',
profileName: 'Bexfy',
www: 'platforms/sectv-tizen/www',
dest: 'platforms/sectv-tizen/build'
},
'tv-webos': {
www: 'platforms/tv-webos/www',
dest: 'platforms/tv-webos/build'
}
},
outdir: 'www/dist',
concat: {
css: {
src: [ 'js/lib/ionic/css/ionic.min.css',
'css/index.css',
'css/index copy.css',
'css/video.css',
'view/Main/Main.css'],
dest: '<%= outdir %>/style.css'
},
js: {
src: [ 'www/js/app.js',
'www/js/services/InstrumentationCls.js',
'www/js/services/DataServ.js',
'www/view/Main/Main.js',
'www/js/lib/qrcode-generator-master/js/qrcode.js',
'www/js/lib/qrcode-generator-master/js/qrcode_UTF8.js',
'www/js/lib/angular-qrcode-master/angular-qrcode.js',
'node_modules/bottlejs'],
dest: '<%= outdir %>/bundle.js'
}
},
uglify: {
options: {
mangle: false
},
build: {
src: ['<%= outdir %>/bundle.js'],
dest: '<%= outdir %>/bundle.min.js'
}
}
});
// external tasks
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
// custom tasks
grunt.loadNpmTasks('grunt-cordova-sectv');
// defaults
grunt.registerTask('default', ['jshint', 'clean', 'sectv-prepare', 'sectv-build']);
grunt.registerTask('CompileTizen', ['clean','concat','uglify', 'sectv-prepare:sectv-tizen', 'sectv-build:sectv-tizen']);
grunt.registerTask('CompileWebos', ['clean','concat','uglify', 'sectv-prepare:tv-webos', 'sectv-build:tv-webos']);
};
Это прекрасно работает для создания необходимых файлов для Tizen. Но моя проблема в том, что для работы с Tizen мне нужно сначала преобразовать мои .ts файлы в .js, а также, если возможно, преобразовать в более старую ecma.
Я пробовал следующее:
grunt.initConfig({
babel: {
options:{
sourceMap:true,
presets:['@babel/preset-env']
},
dist: {
files: [{
expand: true,
cwd: 'www/js',
src: ['*.js'],
dest:'www/dist/'
// 'www/dist':'www/**/*.js'
}]
}
}
...
А также:
babel: {
options:{
sourceMap:true,
presets:[
'@babel/preset-env',
"@babel/preset-typescript"]
},
dist: {
files: [{
expand: true,
cwd: 'www/',
src: ['*.js', '*.ts'],
dest:'www/dist/'
}]
}
}
Но это не дает ожидаемых результатов. Кроме того, я не знаю, как включить его в остальную часть конфигурации.
Также это моя иерархия папок:
Как можно было бы завершить конфигурационный файл, который я сначала разместил, а также переводить файлы .ts и .js в файлы ecma5 .js?