Gruntjs grunt babel警告绑定&x27;参数';以严格的方式
当我想用grunt和uglifyjs压缩我的javascript代码时,但uglifyjs不支持es6,所以我使用grunt babel,但我遇到了一些问题,它警告在严格模式下绑定“参数”,所以我编写了一些简单的代码来测试它。在这个文件中,参数只是一个常见的局部变量,不是call(arguments)或apply,我不知道它是如何发生的,也不知道如何修复它。 以下是示例代码:Gruntjs grunt babel警告绑定&x27;参数';以严格的方式,gruntjs,grunt-babel,Gruntjs,Grunt Babel,当我想用grunt和uglifyjs压缩我的javascript代码时,但uglifyjs不支持es6,所以我使用grunt babel,但我遇到了一些问题,它警告在严格模式下绑定“参数”,所以我编写了一些简单的代码来测试它。在这个文件中,参数只是一个常见的局部变量,不是call(arguments)或apply,我不知道它是如何发生的,也不知道如何修复它。 以下是示例代码: 'use strict'; let a = 1; async function test() { return
'use strict';
let a = 1;
async function test() {
return new Promise(resolve, reject => {
let b = 1;
let c = a + b;
resolve(c);
})
}
function no(arguments) {
console.log(arguments);
}
然后是gruntfile.js
module.exports = function(grunt) {
require("load-grunt-tasks")(grunt);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: {
src: 'dist/'
},
copy: {
main: {
expand: true,
cwd: 'test',
src: '**',
dest: 'dist/',
},
},
babel: {
options: {
sourceMap: false,
presets: ["@babel/preset-env"],
ignore: ["/node_modules","./resources/vendor/**"],
plugins: [
"@babel/plugin-transform-runtime",
["@babel/plugin-transform-modules-commonjs", { "strictMode": false }]
]
},
dist: {
files: [{
expand:true,
cwd:'test/',
src:['**/*.js'],
dest:'dist/'
}]
}
},
uglify: {
options: {
mangle: true,
comments: 'some'
},
my_target: {
files: [{
expand:true,
cwd:'dist/',
src:['**/*.js'],
dest:'dist/'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-babel');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-usemin');
grunt.registerTask('default', ['clean','copy','babel','uglify']);
}
然后执行咕哝
控制台日志
Warning: F:\project\grunttest\test\test.js: Binding 'arguments' in strict mode (11:12)
我试图配置babel选项[“@babel/plugin transform modules commonjs”,{“strictMode”:false}]
但它不起作用,我怎样才能修复它?
感谢您在MDN文档的链接中找到:
arguments
是javascript函数中的保留关键字,当您试图将其定义为函数no
中的内部变量时,它无法正确绑定,因为arguments
是包含函数所有参数的特殊对象
只需将变量的名称更改为另一个名称即可修复错误