github 地址 : https://github.com/gebin/eslint-demo

运行该项目

npm install

npm start

访问 http://localhost:9000

一步一步构建该项目

一开始我想整一个项目,测试一下eslint是怎么玩的,然后我想要基于webpack,因为大部分项目我们是基于webpack来创建的。

于是我新建了一个项目,npm init,一直enter下去,生成了一个package.json,这个文件用来记录需要的node模块。

然后我开始安装需要的node模块,首先是webpack,npm install webpack --save-dev。

然后我开始查找eslint 和webpack如何结合?

在eslint的官网,http://eslint.cn/docs/user-guide/integrations ,我发现了Build Systems --》Webpack: eslint-loader

我开始按照eslint-loader的说明安装, npm install eslint-loader --save-dev,同时当然需要安装eslint了,npm install eslint --save-dev。

然后我们来配置一下webpack.config.js也就是webpack的配置文件,HtmlWebpackPlugin是用来生成对应index.html入口文件,默认加载我们编译好的js。

 const path = require('path');
let HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
entry: './index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'eslint.bundle.js'
},
plugins:[
new HtmlWebpackPlugin(),
]
};

在package.json加入scripts的运行命令

"beta": "webpack --env=beta"

然后npm run beta,我们发现编译成功,出现了一个dist目录,以及对应的生成的eslint.bundle.js。

下一步就是配置eslint-loader了,

 const path = require('path');
let HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
entry: './index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'eslint.bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: "eslint-loader",
options: {
// eslint options (if necessary)
// fix : true
}
},
],
},
plugins:[
new HtmlWebpackPlugin(),
]
};

然后尝试一下,在文件根目录创建一个index.js,然后npm run beta 运行,

 class EslintDemo{
func1(){
console.log('ddddd')
};
}; var EslintDemoSample = new EslintDemo();
EslintDemoSample.func1();

你会发现报错了webpack No ESLint configuration found

这是告诉我们还没有配置通过什么规则来对我们的代码进行校验,参照eslint入门,我们执行./node_modules/.bin/eslint --init这个命令就可以了,选择需要的校验规则,这里我选择的是standard模板。

然后,npm run beta,就会发现报错信息了,提示你哪些代码写的是不对的。

但是这样不适合我们的开发模式,需要不断运行npm run beta,所以我们引入webpack-dev-server。

同样是npm install webpack-dev-server --save-dev,然后配置devserver配置项。

 const path = require('path');
let HtmlWebpackPlugin = require('html-webpack-plugin') module.exports = {
entry: './index.js', output: {
path: path.resolve(__dirname, 'dist'),
filename: 'eslint.bundle.js'
}, devServer:{
contentBase: path.join(__dirname, "dist"),
compress: true,
port: 9000
}, module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: "eslint-loader",
options: {
// eslint options (if necessary)
// fix : true
}
},
],
}, plugins:[
new HtmlWebpackPlugin(),
]
};

在package.json的scripts中加入

"start": "webpack-dev-server",

至此,npm start 启动项目。然后在网页中打开 http://localhost:9000 就可以访问本页面了。

eslint 入门项目搭建过程的更多相关文章

  1. Java Web项目搭建过程记录(struts2)

    开发工具:eclipse 搭建环境:jdk1.7   tomcat 8.0 基础的java开发环境搭建过程不再赘述,下面从打开eclipse 之后的操作开始 第一步: 创建项目,File -> ...

  2. 004-Spring boot 快速入门-项目搭建与启动、SpringBootApplication、启动图标

    一.官方地址 Spring:http://spring.io/ Spring Project:http://spring.io/projects Spring boot:https://project ...

  3. 002-Spring4 快速入门-项目搭建、基于注解的开发bean,Bean创建和装配、基于注解的开发bean,Bean初始化销毁、Bean装配,注解、Bean依赖注入

    一.项目搭建 1.项目创建 eclipse→project explorer→new→Project→Maven Project 默认配置即可创建项目 2.spring配置 <dependenc ...

  4. vue企业项目搭建过程(vue-cli脚手架超详细教程 傻瓜-入门)

    vue作为现在主流的前端框架,有必要学习一下. vue的官方文档还是不错的,开源中文,一个爽字形容. 如果不是实际开发需要vue-cli构建项目,那么可以在加一个爽. 然而要构建的时候发现官方文档还是 ...

  5. Vue -cli 入门 --项目搭建(一)

    一. 安装node.js环境. 在node.js官网下载稳定版本(https://nodejs.org/en/) 下载完成后点击安装,安装过程很简单,一直next即可,安装完成会自动添加node及np ...

  6. 基于idea的springcloud的helloworld项目搭建过程整理

    Springcloud的搭建主要包括三个部分:服务注册中心.服务提供者.服务消费者.每一个部分都是一个springboot项目,它们通过配置文件(application.properties或appl ...

  7. 【Unity/Kinect】Kinect入门——项目搭建

    本文是Unity Store里的官方Demo包中的ReadMe翻译(别人翻的),介绍了用Unity如何入门搭建起一个Kinect项目工程. 非常感谢下面这位大大的无私奉献! http://www.ma ...

  8. Vue项目搭建过程

    环境搭建:mac+nodejs+npm #安装node.js : $ brew install node #安装vue-cil: $ npm install -g vue-cli 注:官网下载安装no ...

  9. 1 JPA入门----项目搭建以及CRUD

    maven搭建JPA开发环境 1 依赖的maven pom文件     主要有hibernate-core.hibernate-entitymanager.javax-persistence.mysq ...

随机推荐

  1. vue-cli的webpack模版项目配置解析-build/dev-server.js

    我们在使用vue-cli搭建vuejs项目(Vuejs实例-01使用vue-cli脚手架搭建Vue.js项目)的时候,会自动生成一系列文件,其中就包含webpack配置文件.我们现在来看下,这些配置到 ...

  2. JavaScript实现Tab栏切换

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 京东网页上,可以看到下面这种tab栏的切换: 我们把模型抽象出来,实现一 ...

  3. Codeforces 448 E. Divisors (DFS,储存结构)

    题目链接:E. Divisors 题意: 给出一个X,f(X)是X所有约数的数列(例6:1 2 3 6),给出一个k,k是递归的次数(例:k=2 : f(f(X)) ; X=4,k=2: 1 1 2 ...

  4. io调度策略noop的理解

    io电梯算法,网上一堆,在此不再赘述. 手上有几块厂商提供的sas的ssd,做如下实验. 考虑到没有磁头移动,ssd一般采用noop的io调度策略,结果看到如下的iostat测试数据: Device: ...

  5. python 序列

    序列 序列是python中的一种数据结构,这种数据结构根据索引来获取序列中的对象 有6种内建序列类:list,tuple,string,unicode,buffer,xrange. 其中xrange比 ...

  6. awk中引用shell变量执行替换的脚本

    遇到问题: 现在有两个脚本,我想 将file1中的内容按file2来匹配 [root@154 home]# cat file1 3-1-1 POTV=1,POTA=0,POTP=2 1-4-76 PO ...

  7. C# 类型基础(上)

    C#类型都派生自System.Object 祖先的优良传统:Object的公共方法 Equals: 对象的同一性而非相等性 GetHashCode:返回对象的值的哈希码 ToString:默认返回类型 ...

  8. Python CRM项目六

    自定义Django Admin的action 在Django Admin中,可以通过action来自定义一些操作,其中默认的action的功能是选中多条数据来进行删除操作 我们在king_admin中 ...

  9. 一个 div 手写红绿灯- 分别用css3 和 js 实现

    [要求] 一个div,配合 css3 或者 js 实现红绿灯切换的效果. [思路] 使用 css3,要实现红绿灯颜色的变换必然要用到 animation 动画,通过 keyframes 控制颜色的渐变 ...

  10. 【原创】@ResponseBody返回json数据时出现中文乱码

    ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 原因: Spring中解析字符串的转换器默认编码格式是ISO-8859-1 public class StringHttpMessageCon ...