打字稿和丑化任务
Typescript & Uglify Tasks
好的,所以我正在玩打字稿,希望用它来缩小我的代码,但据我所知,打字稿不会那样做。所以我像这样构建了我的 G运行tfile,
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
ts: {
default: {
files: {
'/js/builds/admin.js': ['/typescript/admin/*.ts'],
'/js/builds/main.js': ['/typescript/main/*.ts'],
'/js/builds/public.js': ['/typescript/public/*.ts']
}
},
options: {
fast: 'never',
sourceMap: false
},
},
'uglify': {
options: {
preserveComments: 'some',
},
my_target: {
files: {
//Libs Files
'/assets/js/libs.js': [
'/js/libs/jquery-3.1.1.min.js',
'/js/libs/underscore-1.8.3.min.js',
'/js/libs/backbone-1.3.3.min.js',
],
//Plugin Files
'/assets/js/plugins.js': [
'/js/plugins/alertify.min.js',
],
//Admin Build
'/assets/js/our_admin.js': [
'/js/builds/admin.js'
],
//Main Build
'/assets/js/main.js': [
'/js/builds/main.js'
],
//Public Build
'/assets/js/public.js': [
'/js/builds/public.js'
]
}
}
},
watch: {
'TypeFiles': {
files: ['/typescript/**/*.ts'],
tasks: ['ts'],
options: {
spawn: false
},
},
'JSFiles': {
files: ['/js/**/*.js'],
tasks: ['uglify'],
options: {
spawn: false,
},
},
}
});
grunt.loadNpmTasks("grunt-ts");
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
};
我想做的是将打字稿构建到标准 javascript 中,然后自动 运行 我的丑化任务。
就目前而言,如果我添加/编辑任何 lib 或插件文件(因为它们与我的打字稿无关),它就可以工作,但是当我编辑打字稿文件时,它将构建 JS 文件,但不会 运行 丑化任务?
那么如何让它在ts任务完成后做uglify任务呢?
非常感谢。
我想我有办法解决这个问题。我将 TS 任务添加到我的 JSFiles 监视任务中,并将打字稿文件添加到它应该监视的文件列表中,如下所示:
'JSFiles': {
files: ['/js/**/*.js', '/typescript/**/*.ts'],
tasks: ['ts', 'uglify'],
options: {
spawn: false,
},
},
现在这可能是最好的选择,因为完成打字稿和缩小任务需要一些时间。但是我已经在 Symfony2 中设置了这个项目,我更喜欢设置指向产品的新项目。文件。
谢谢
好的,所以我正在玩打字稿,希望用它来缩小我的代码,但据我所知,打字稿不会那样做。所以我像这样构建了我的 G运行tfile,
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
ts: {
default: {
files: {
'/js/builds/admin.js': ['/typescript/admin/*.ts'],
'/js/builds/main.js': ['/typescript/main/*.ts'],
'/js/builds/public.js': ['/typescript/public/*.ts']
}
},
options: {
fast: 'never',
sourceMap: false
},
},
'uglify': {
options: {
preserveComments: 'some',
},
my_target: {
files: {
//Libs Files
'/assets/js/libs.js': [
'/js/libs/jquery-3.1.1.min.js',
'/js/libs/underscore-1.8.3.min.js',
'/js/libs/backbone-1.3.3.min.js',
],
//Plugin Files
'/assets/js/plugins.js': [
'/js/plugins/alertify.min.js',
],
//Admin Build
'/assets/js/our_admin.js': [
'/js/builds/admin.js'
],
//Main Build
'/assets/js/main.js': [
'/js/builds/main.js'
],
//Public Build
'/assets/js/public.js': [
'/js/builds/public.js'
]
}
}
},
watch: {
'TypeFiles': {
files: ['/typescript/**/*.ts'],
tasks: ['ts'],
options: {
spawn: false
},
},
'JSFiles': {
files: ['/js/**/*.js'],
tasks: ['uglify'],
options: {
spawn: false,
},
},
}
});
grunt.loadNpmTasks("grunt-ts");
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
};
我想做的是将打字稿构建到标准 javascript 中,然后自动 运行 我的丑化任务。
就目前而言,如果我添加/编辑任何 lib 或插件文件(因为它们与我的打字稿无关),它就可以工作,但是当我编辑打字稿文件时,它将构建 JS 文件,但不会 运行 丑化任务?
那么如何让它在ts任务完成后做uglify任务呢?
非常感谢。
我想我有办法解决这个问题。我将 TS 任务添加到我的 JSFiles 监视任务中,并将打字稿文件添加到它应该监视的文件列表中,如下所示:
'JSFiles': {
files: ['/js/**/*.js', '/typescript/**/*.ts'],
tasks: ['ts', 'uglify'],
options: {
spawn: false,
},
},
现在这可能是最好的选择,因为完成打字稿和缩小任务需要一些时间。但是我已经在 Symfony2 中设置了这个项目,我更喜欢设置指向产品的新项目。文件。
谢谢