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. 今天遇到了一个Spring出现的一个未知错误,分享下

    异常内容: 未知错误[COM999] 使用环境:dubbo+SpringMVC+myBatis 解决方案:检查Spring配置文件,发现配置文件在注入Service的时候写错了 com.wu.wsf. ...

  2. Oracle database

    //下面这个通常直选择TCP就好了 此处的全局数据库根据实际情况来确定,如果是第一次,要和第一次一致.(见上面的图中的全局数据库) //这个可以使  计算机名(计算机—>属性).也可以是ip地址 ...

  3. UML图学习之三 状态图

    状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action). ...

  4. word:Can't find the word document templant:WordToRqm.doc

    问题:打开word文件时弹出提示 Cannot find the Word template:WordToRqm.dot 原因:安装了power designer. 解决:运行regedit.exe ...

  5. linux unzip 解压后文件名乱码

    在windows上zip的包,rz上传到linux下,发现出现乱码.记录下解决过程: 1.确定windows上的默认字符集 在Windows平台下,直接在命令行中,输入:chcp 在显示的结果中,会出 ...

  6. 手把手教学系列:从零开始配置VPS服务器

    1.什么是VPS? 百度百科:VPS(Virtual Private Server 虚拟专用服务器)技术,将一台服务器分割成多个虚拟专享服务器的优质服务. 通俗地讲,可以认为就是一台放在机房机架上的服 ...

  7. linux_NFS

    NFS是什么? 网络文件系统,又叫共享存储,通过网络连接让不同主机之间实现共享存储. 应用于存放图片.附件.视频等用户上传文件 相关同类应用:大型网站nfs有压力,使用moosefs(mfs),Ghu ...

  8. linux_远程连接

    为什么要远程连接linux服务器? 温度.湿度.电力各种影响,有的企业使用阿里云服务器,更加接触不到机房,所有需要通过远程连接服务器来进行管理 IP地址? 互联网上的计算机,都会有一个唯一的32位地址 ...

  9. php中urldecode()和urlencode()起什么作用

    urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%.urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原 ...

  10. jsp的语法

    JSP指令和脚本元素指令 <%@ 指令%>声明 <%! 声明%>表达式 <%= 表达式%>代码段/脚本段 <% 代码段%>注释 <%-- 注释-- ...