11

我在ts目录下有 4 个 TypeScript 文件。typescript:base我可以使用该任务将它们全部编译成一个带有源映射(main.js.map)的文件(main.js) 。

但是,在编译多个TypeScript 文件时,尝试uglify这些文件不起作用。当使用多个文件制作时,好像会感到困惑。uglifysourceMapIn

您如何将具有多个文件的 TypeScript 项目编译成具有源映射的一个文件(返回原始 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']);
};

谢谢!

4

1 回答 1

3

我试图在以下环境中重现您的问题:

grunt: 0.4.1
grunt-contrib-uglify: 0.2.2
grunt-typescript: 0.2.4
nodejs: 0.10.15

我不得不更改uglify.dist.options.sourceMapInto'../js/main.js.map'uglify.dist.files['../js/main.min.js']to ['../js/main.js'],即使路径相对于 gruntfile 位置。之后,编译工作完美无缺,../js/main.min.js而且../js/main.min.map看起来都是正确的。

于 2013-08-29T06:42:49.903 回答