我正在创建一个 Chrome 扩展程序。我想编写一个匹配字符串的代码,包括\n
如下所示:
var s = "a\nb";
console.log(s.match(/a.*b/s)); // prints non-null
Run Code Online (Sandbox Code Playgroud)
我使用该s
标志是因为它可以在 Chrome 67.0.3396.99 上运行。然而,这个标志没有在标准 Javascript 中定义,所以 ESlint 说
2:22 error Parsing error: Invalid regular expression flag
Run Code Online (Sandbox Code Playgroud)
有什么办法可以忽略这一点吗?我// eslint-disable-line no-invalid-regexp
在我的代码中尝试过
"no-invalid-regexp": ["error", { "allowConstructorFlags": ["s"] }],
Run Code Online (Sandbox Code Playgroud)
在我的 .eslintrc.json 中,但两者都不起作用(似乎它仅适用于RegExp
构造函数而不适用于正则//
表达式)。
我尝试过// eslint-disable-line
,/* eslint-disable */
但也没成功。
在ESlint 文档中,
注意:禁用文件部分警告的注释告诉 ESLint 不要报告禁用代码的规则违规行为。然而,ESLint 仍然解析整个文件,因此禁用的代码仍然需要是语法上有效的 JavaScript。
所以这个s
标志被认为是无效的Javascript。难道真的无法忽略这个错误吗?或者这可以被插件或其他东西忽略吗?
javascript regex google-chrome google-chrome-extension eslint
我执行时遇到此错误webpack
:
Module not found: Error: Can't resolve 'core-js/modules/es6.array.map' in '/path/to/project/src'
@ ./src/index.ts 1:0-39
Run Code Online (Sandbox Code Playgroud)
index.ts
:
console.log([1, 2, 3].map(x => x * x));
Run Code Online (Sandbox Code Playgroud)
.babelrc
:
{
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "usage"
}
]
]
}
Run Code Online (Sandbox Code Playgroud)
webpack.config.js
:
const path = require('path');
module.exports = {
mode: 'development',
entry: './src/index.ts',
devtool: false,
output: {
filename: 'bundle.js',
path: path.join(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.ts$/,
use: [
{ loader: 'babel-loader' },
{ loader: 'ts-loader' }
]
} …
Run Code Online (Sandbox Code Playgroud)