使用uglify将JavaScript打印到JavaScript
我在TS目录下有4个TypeScript文件。 我可以使用typescript typescript:base
任务将它们全部编译成一个文件(main.js)和一个源映射(main.js.map)。
但是,在编译多个 TypeScript文件时,尝试uglify
这些文件不起作用。 就好像sourceMapIn
在sourceMapIn
被多个文件创build的时候感到困惑。
你将如何编译一个带有多个文件的TypeScript项目到一个带有sourcemap的文件中(回到原来的ts文件)
这是咕噜声文件:
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']); };
谢谢!
我试图用以下的环境重现你的问题:
grunt: 0.4.1 grunt-contrib-uglify: 0.2.2 grunt-typescript: 0.2.4 nodejs: 0.10.15
我不得不将uglify.dist.options.sourceMapIn
更改为'../js/main.js.map'
和uglify.dist.files['../js/main.min.js']
为['../js/main.js']
,即使path相对于gruntfile位置。 之后,编译工作完美无瑕, ../js/main.min.js
/ ../js/main.min.map
../js/main.min.js
和../js/main.min.map
看起来都是正确的。