【问题标题】:Grunt a TypeScript to JavaScript with uglify使用 uglify 将 TypeScript 转为 JavaScript
【发布时间】:2013-03-23 23:26:12
【问题描述】:

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

但是,当编译 多个 TypeScript 文件时,尝试 uglify 这些文件不起作用。当sourceMapIn 由多个文件组成时,就好像uglify 会感到困惑。

如何将一个包含多个文件的 TypeScript 项目编译成一个包含 sourcemap 的文件(返回原始 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']);
};

谢谢!

【问题讨论】:

    标签: node.js typescript gruntjs uglifyjs


    【解决方案1】:

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

    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'],即。 e.使路径相对于 gruntfile 位置。之后,编译工作完美无缺,../js/main.min.js../js/main.min.map 看起来都是正确的。

    【讨论】:

      猜你喜欢
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 2016-06-19
      • 2021-05-04
      • 2013-04-18
      • 1970-01-01
      • 2019-09-17
      相关资源
      最近更新 更多