北京市违法建设投诉网站,湖南长沙电信大楼着火,太原网页设计师招聘信息,物流网站制作问题描述
在taro项目中使用defineConstants定义一些全局变量供业务代码中进行使用#xff0c;全局变量声明config/index.js代码如下#xff1a;
module.exports {defineConstants: {LOGIN_URL: JSON.stringify(/baidu/login), },全局变量使用代码如下#xff1a;
/*** 跳…问题描述
在taro项目中使用defineConstants定义一些全局变量供业务代码中进行使用全局变量声明config/index.js代码如下
module.exports {defineConstants: {LOGIN_URL: JSON.stringify(/baidu/login), },全局变量使用代码如下
/*** 跳转登录* param {*} redirect 登录回跳页面默认返回当前页面*/
export const goLogin (redirect ) {Taro.redirectTo({url: queryString.stringifyUrl({url: LOGIN_URL,query: {redirect: redirect || window.location.href,},}),});
};在引用该变量时eslint报错如下
问题出现原因
eslint有一条规则no-undef是不允许使用未定义的变量在eslint 检测代码的时候会报错
解决方案
修改 .eslintrc.jseslint配置文件内容如下:
module.exports {parser: typescript-eslint/parser,extends: [taro/react],rules: {no-console: [error, { allow: [error] }],},globals: {LOGIN_URL: readonly,}
};知识剖析
Specifying Globals
当访问当前源文件内未定义的变量时no-undef 规则将发出警告。如果你想在一个源文件里使用全局变量推荐你在 ESLint 中定义这些全局变量这样 ESLint 就不会发出警告了。你可以使用注释或在配置文件中定义全局变量。
要在你的 JavaScript 文件中用注释指定全局变量格式如下
/* global var1, var2 */这定义了两个全局变量var1 和 var2。如果你想选择性地指定这些全局变量可以被写入(而不是只被读取)那么你可以用一个 “writable” 的标志来设置它们:
/* global var1:writable, var2:writable */要在配置文件中配置全局变量请将 globals 配置属性设置为一个对象该对象包含以你希望使用的每个全局变量。对于每个全局变量键将对应的值设置为 “writable” 以允许重写变量或 “readonly” 不允许重写变量。例如
{globals: {var1: writable,var2: readonly}
}参考资料
eslint- GlobalsESLint中的globals——向ESLint规则中添加全局变量eslint从入门到放弃之esLint配置之globals二)