Gruntjs I';我一直在配置Gruntfile.js以将多个js文件传输到一个文件中

Gruntjs I';我一直在配置Gruntfile.js以将多个js文件传输到一个文件中,gruntjs,grunt-babel,Gruntjs,Grunt Babel,我已经用babel(和concat)替换了uglify,所以我将多个ES6文件合并到一个发行版JS文件中。我想进入dist文件夹,让babel Transfile并覆盖文件,但这样做,babel无法使用dist文件夹,警告: 找不到相对于目录的预设“env” 我做错了什么 my Grunfile.js: module.exports=函数(grunt){ grunt.initConfig({ pkg:grunt.file.readJSON('package.json'), 康卡特:{ 选项:{

我已经用babel(和concat)替换了uglify,所以我将多个ES6文件合并到一个发行版JS文件中。我想进入dist文件夹,让babel Transfile并覆盖文件,但这样做,babel无法使用dist文件夹,警告: 找不到相对于目录的预设“env”

我做错了什么

my Grunfile.js:

module.exports=函数(grunt){
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
康卡特:{
选项:{
/*sourceMap:true,
sourceMapStyle:“链接”*/
},
地区:{
src:[
“js/file1.js”,
“js/file2.js”,
“js/file3.js”,
“js/file4.js”,
“js/file5.js”
],
dest:“js/script.concat.js”
}
},
巴别塔:{
选项:{
预设:[“环境”],
/*sourceMap:true*/
缩小:正确
},
地区:{
文件:[{../dist/js/script.min.js:“js/script.concat.js”}]
}
},
观察:{
js:{
文件:[“js/file1.js”、“js/file2.js”、“js/file3.js”、“js/file4.js”、“js/file5.js”],
任务:[“concat:dist”,“babel:dist”]
}
}
});
grunt.loadNpmTasks(“grunt-contrib-concat”);
grunt.loadNpmTasks(“grunt-babel”);
grunt.loadNpmTasks(“grunt-contrib-watch”);
registerTask('default',['watch']);
registerTask('build',['concat:dist','babel:dist']);
};

尝试像这样瞄准预设:而不是
[“env”]
使用
[“@babel/preset env”]
这将取决于您如何安装预设。对不起,我没有澄清。对不起,为什么这取决于预设的安装方式?当然,这永远只是一个模块?这取决于您如何安装它。使用纱线或npm。这就是区别。你需要
@babel
名称空间。另一个是完整的软件包名称
babel-preset-env
。您还可以尝试使用解析器来解析依赖项。Babel的问题是它“在正在传输的文件的当前目录中查找.babelrc。如果不存在,它将沿目录树向上移动…”。由于您的
。/dist
文件夹位于项目目录的根目录之外(即,它位于上一级),Babel将找不到它。您需要将
dist
文件夹重新定位到项目文件夹的根目录下(即与
src
处于同一级别)。在
。/dist/
。/dist/js
中将
.babelrc
保存一级也不起作用。
dist
的路径必须是
/dist