rea*_*lph 5 javascript gruntjs babeljs
我正在尝试在我的grunt构建过程中使用Babel将我的.js项目文件从ES6转换为ES5.我有一个watch任务正在查看我的.js目录中的更改,当检测到更改时,我运行babel任务.
但是出于某种原因,仅更改一个.js文件需要6-10秒才能完成.我感觉它正在整个项目的转变,但我不确定.我Gruntfile.js看起来像这样:
grunt.initConfig({
watch: {
babel: {
files: ["<%= yeoman.app %>/scripts/**/*.js"],
tasks: ["babel"]
},
livereload: {
options: {
livereload: LIVERELOAD_PORT
},
files: [
"{.tmp,<%= yeoman.app %>}/scripts/**/*.js",
]
}
},
babel: {
options: {
sourceMap: true,
presets: ['es2015']
},
dist: {
files: [
{
expand: true,
cwd: '<%= yeoman.app %>/scripts/',
src: ['**/*.js'],
dest: '.tmp/scripts/'
}
]
}
}
});
grunt.registerTask("serve", function(target) {
return grunt.task.run(["watch"]);
});
Run Code Online (Sandbox Code Playgroud)
当我运行grunt serve并更改文件时,它会记录执行时间:
运行"babel:dist"(babel)任务
完成,没有错误.
执行时间(2015-12-01 11:57:54 UTC)babel:dist 6.7s▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ▇▇▇▇▇100%总计6.7s
但是当我babel-cli在我的终端中使用时,它会在几毫秒内完成,甚至几乎是瞬间完成:
babel --presets es2015 script.js --out-file transpiled.js
Run Code Online (Sandbox Code Playgroud)
当然这太长了.我在这里做错了什么.
任何帮助表示赞赏.提前致谢!
小智 0
在开发过程中,你可以决定直接在浏览器中运行 JS 版本的 Babel-core,它运行得相当快。
然后,为了部署,您可以创建一个特定的 Grunt 构建任务,从 HTML 中删除 Babel-Core,并使用 Grunt Babel 插件转译文件。
你的 Gruntfile 将会有这样的内容:
grunt.registerTask('build', ['processhtml', 'babel']);
grunt.registerTask('default', [''watch']);
Run Code Online (Sandbox Code Playgroud)
要删除 Babel-core JS,您可以使用 grunt-processhtml 之类的插件:http://www.npmjs.com/package/grunt-processhtml。HTML 将如下所示:
<!-- build:remove -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/6.1.19/browser.min.js"></script>
<!-- /build -->
Run Code Online (Sandbox Code Playgroud)
JS Babel-core 可以在这里找到: http: //cdnjs.com/libraries/babel-core。您可以下载它并将其添加到您的项目中,或者直接从 CDN 运行它。
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |