gruntjs - 如何设置 grunt + browserify + tsify + babelify?

标签 gruntjs browserify babeljs tsify

我正在努力设置 grunt + browserify + tsify + babelify (带调试)。

下面的 gruntfile 设置确实编译了 typescript,但没有发生 babel 转换。

有人可以告诉我该怎么做吗? (我可能需要使用 gulp 来做到这一点?)

        browserify: {
        main: {
            src: 'app/scripts/main.ts',
            dest: 'app/scripts/bundle.js',
        },
        options: {
            browserifyOptions: {
                plugin: [['tsify']],
                transform: [['babelify', {presets: ['es2015'], extensions: ['.ts']}]],
                debug: true
            }
        }
    }

tsconfig.json 的目标设置为“es2015”。

最佳答案

问题是 grunt-browserify 加载 transforms first and then the plugins ,所以您想要做的 - 将转换放在插件之后 - 使用声明性配置是不可能的。

但是,您可以使用grunt-browserify configure函数并设置插件并在所述函数内进行转换:

browserify: {
    main: {
        src: 'app/scripts/main.ts',
        dest: 'app/scripts/bundle.js',
    },
    options: {
        browserifyOptions: {
            debug: true
        },
        configure: function (bundler) {

            bundler.plugin(require('tsify'));
            bundler.transform(require('babelify'), {
                presets: ['es2015'],
                extensions: ['.ts']
            });
        }
    }
}

关于gruntjs - 如何设置 grunt + browserify + tsify + babelify?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40182786/

相关文章:

javascript - Grunt - 如何使用 grunt 缓存破坏更新 js 文件中的 html 文件引用?

javascript - 使用 node 和 browserify 制作 http 服务器

javascript - 结合 Visual Studio 2015、gulp、browserify、React.js 和 JSX

reactjs - 使用 babel polyfill 后,bundle.js 仍然包含箭头函数和默认参数

javascript - MEAN 堆栈文件结构和 grunt

asynchronous - 将 grunt 参数从一项任务传递到另一项任务

javascript - 将一个 npm 模块编译成一个文件,没有依赖关系

javascript - Sequelize 五5,通天七7 : TypeError: Class constructor Model cannot be invoked without 'new'

javascript - Transpiling 和 Polyfilling 与浏览器性能优化

node.js - 为什么我无法通过网络共享连接到连接服务的网站?