gil*_*ran 10 node.js uglifyjs gruntjs typescript
我在ts目录下有4个TypeScript文件.我可以使用typescript:base任务将它们全部编译成一个带有源映射(main.js.map)的文件(main.js).
但是,uglify在编译多个 TypeScript文件时尝试这些文件不起作用.uglify当sourceMapIn用多个文件制作时,好像很困惑.
如何将具有多个文件的TypeScript项目编译为一个带有源映射的文件(返回原始ts文件)
这是grunt文件:
module.exports = function (grunt) {
grunt.initConfig({
uglify: {
dist: {
options: {
sourceMap: '../js/main.min.map',
sourceMapIn: 'main.js.map',
sourceMapRoot: '../ts/'
},
files: {
'../js/main.min.js': ['main.js']
}
}
},
typescript: {
base: {
src: ['**/*.ts'],
dest: '../js/main.js',
options: {
module: 'amd',
sourcemap: true,
declaration: false
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-typescript');
grunt.file.setBase('../ts');
grunt.registerTask('default', ['typescript:base', 'uglify:dist']);
};
Run Code Online (Sandbox Code Playgroud)
谢谢!
我尝试在以下环境中重现您的问题:
grunt: 0.4.1
grunt-contrib-uglify: 0.2.2
grunt-typescript: 0.2.4
nodejs: 0.10.15
Run Code Online (Sandbox Code Playgroud)
我必须更改uglify.dist.options.sourceMapIn为'../js/main.js.map'和uglify.dist.files['../js/main.min.js']to ['../js/main.js'],即使路径相对于 gruntfile 位置。之后,编译工作完美无缺,而且../js/main.min.js看起来../js/main.min.map都是正确的。