我可以忽略 eslint-loader 的意外保留字错误吗
Can I ignore Unexpected reserved word error by eslint-loader
我正在使用最新的 React、Babel 以及它们必要的预设。
我的应用程序运行正常,不会出现任何控制台错误。
但是,我从 eslint-loader
.
收到以下错误
我该如何解决这个问题?
我的主机
blog git:(master) ✗ webpack -w -d
Hash: 96cef29fd40f9ab86ee5
Version: webpack 1.12.9
Time: 1305ms
Asset Size Chunks Chunk Names
bundle.js 3.75 kB 0 [emitted] main
bundle.js.map 2.07 kB 0 [emitted] main
+ 1 hidden modules
ERROR in ./app/assets/frontend/app.jsx
/Users/seoyoochan/dev/blog/app/assets/frontend/app.jsx
1:2 error Parsing error: Unexpected reserved word
✖ 1 problem (1 error, 0 warnings)
webpack.config.js
module.exports = {
entry: "./app/assets/frontend/app.jsx",
output: {
path: __dirname + "/app/assets/javascripts",
filename: "bundle.js"
},
resolve: {
extensions: ["", ".js", ".jsx"]
},
module: {
preLoaders: [
{
test: /.jsx?$/,
loader: "eslint-loader",
exclude: /bundle\.js$/
}
],
loaders: [
{
test: /.jsx?$/,
loader: "babel",
exclude: /node_modules/,
query: {
cacheDirectory: true,
presets: ["es2015", "react"]
}
}
]
}
};
app.jsx
class App extends React.Component {
render() {
return (<h1>hello !</h1>);
}
}
let documentReady = () => {
ReactDOM.render(<App/>, document.getElementById('app'));
};
$(documentReady);
您可能需要配置 eslint 才能理解 jsx。使用以下内容创建 .eslintrc
文件:
{
"ecmaFeatures": {
"jsx": true
}
}
对于将来可能会引发错误的配置的完整列表,see the docs
我配置了eslint来理解jsx,所以这里是这个错误的分步解决方案。
使用以下
创建一个 .elintrc 文件
{
"ecmaFeatures":{
"jsx":正确
}
}
在webpack.config.js中添加以下内容
module.exports = {
...
模块: {
预加载器:[
{
测试:/.js?$/,
装载机:"eslint-loader",
排除:/bundle.js$/
}
],
装载机:[
{
测试:/.jsx?$/,
装载机:"babel",
排除:/node_modules/,
询问: {
缓存目录:真,
预设:["es2015"、"react"]
}
}
]
},
eslint:{
配置文件:'./.eslintrc'
}
}
我正在使用最新的 React、Babel 以及它们必要的预设。
我的应用程序运行正常,不会出现任何控制台错误。
但是,我从 eslint-loader
.
收到以下错误
我该如何解决这个问题?
我的主机
blog git:(master) ✗ webpack -w -d
Hash: 96cef29fd40f9ab86ee5
Version: webpack 1.12.9
Time: 1305ms
Asset Size Chunks Chunk Names
bundle.js 3.75 kB 0 [emitted] main
bundle.js.map 2.07 kB 0 [emitted] main
+ 1 hidden modules
ERROR in ./app/assets/frontend/app.jsx
/Users/seoyoochan/dev/blog/app/assets/frontend/app.jsx
1:2 error Parsing error: Unexpected reserved word
✖ 1 problem (1 error, 0 warnings)
webpack.config.js
module.exports = {
entry: "./app/assets/frontend/app.jsx",
output: {
path: __dirname + "/app/assets/javascripts",
filename: "bundle.js"
},
resolve: {
extensions: ["", ".js", ".jsx"]
},
module: {
preLoaders: [
{
test: /.jsx?$/,
loader: "eslint-loader",
exclude: /bundle\.js$/
}
],
loaders: [
{
test: /.jsx?$/,
loader: "babel",
exclude: /node_modules/,
query: {
cacheDirectory: true,
presets: ["es2015", "react"]
}
}
]
}
};
app.jsx
class App extends React.Component {
render() {
return (<h1>hello !</h1>);
}
}
let documentReady = () => {
ReactDOM.render(<App/>, document.getElementById('app'));
};
$(documentReady);
您可能需要配置 eslint 才能理解 jsx。使用以下内容创建 .eslintrc
文件:
{
"ecmaFeatures": {
"jsx": true
}
}
对于将来可能会引发错误的配置的完整列表,see the docs
我配置了eslint来理解jsx,所以这里是这个错误的分步解决方案。
使用以下
创建一个 .elintrc 文件{ "ecmaFeatures":{ "jsx":正确 } }
在webpack.config.js中添加以下内容
module.exports = { ... 模块: { 预加载器:[ { 测试:/.js?$/, 装载机:"eslint-loader", 排除:/bundle.js$/ } ], 装载机:[ { 测试:/.jsx?$/, 装载机:"babel", 排除:/node_modules/, 询问: { 缓存目录:真, 预设:["es2015"、"react"] } } ] }, eslint:{ 配置文件:'./.eslintrc' } }