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. 织梦DEDE网站后台如何上传附件

    如题,织梦DEDE网站后台如何上传附件?今天本人遇到这样的问题,在网站后台里点击一番后,成功上传了一个pdf文件和doc文件,特来分享经验. 工具/原料 织梦dede网站 doc文件 方法/步骤 1 ...

  2. destoon标签

    http://blog.csdn.net/oYuHuaChen/article/details/54601509 ------------

  3. ThinkPHP5上传图片并压缩为缩略图

    使用thinkphp开发app后端中,需要实现一个处理上传图片队列的功能 这是个上传多图片保存并且需要对其中一张图片进行压缩的功能 (使用的html5 mui框架开发app,如果直接载入原图,app客 ...

  4. myeclipse 10怎么安装与激活

    http://jingyan.baidu.com/article/5553fa82eae0ce65a2393406.html

  5. Java数据持久层框架 MyBatis之API学习一(简介)

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

  6. Java线程-异常处理

    在Java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉.这一点是通过java.lang.Run ...

  7. Servlet--HttpServlet类

    HttpServlet类 定义 public class HttpServlet extends GenericServlet implements Serializable 这是一个抽象类,用来简化 ...

  8. Java集合分析

    Java集合分析 前言 从开始接触Java的时候, 就在强调的一个重要版块, 集合. 终于能够开始对它的源码进行分析, 理解, 如果不懂得背后的思想, 那么读懂代码, 也仅仅是读懂了 if else ...

  9. 关于HDPHP,HDCMS 安装,空白问题

    这几天,框论坛发现,HDPHP,号称还不错. 微信,支付宝支付,短信,阿里云OSS,权限认证等,都有.对开发人员来说很好了.. 马上下载来试试, HDPHP官方文档说需要PHP5.6,不过貌似我5.5 ...

  10. 【mac】mac os X更新High Sierra后出现的问题

    今天更新了一下macbook pro的系统到10.13.1版本,出现了几个小问题,总结一下解决方案: git客户端无法使用 解决方案如下: http://blog.csdn.net/kedongjun ...