1.安装node.js。这个自行百度安装就好了,没什么说的,安装完配置环境变量。因为后面安装第三方包是要用到npm命令,装完node就等于安装完了npm

2.项目目录创建

mkdir es6
cd es6/
mkdir app
mkdir server
mkdir tasks
cd app/
mkdir css
mkdir js
mkdir views
ls
mkdir js/class
touch js/class/test.js
touch js/index.js
touch views/error.ejs 当做HTML使用
touch views/index.ejs
cd ../server/
npm install -g express
npm install -g express-generator
express -e . 使用ejs模板引擎 使用这个错误 说明你express没有安装好
npm install
clear
cd ../tasks/
mkdir util
touch util/args.js
clear
cd ../
npm init
y
touch .babelrc
touch gulpfile.babel.js
clear

这些命令都是在linux上操作的,那么在Windows怎么操作呢?其实新建文件夹,新建文件这些都可以在Windows操作,只有nmp开头的那些命令才需要在cmd执行,不过执行前需要cd到对应的目录。

3.添加脚本

在tasks/util/args.js脚本中编写如下代码

import yargs from 'yargs';

//区分开发环境和线上环境
const args = yargs
.option('production', {
boolean: true,
default: false,
describe: 'min all scripts'
})
//修改文件自动编译
.option('watch', {
boolean: true,
default: false,
describe: 'watch all files'
})
//是否详细输出命令行日志
.option('verbose', {
boolean: true,
default: false,
describe: 'log'
}) //映射
.option('sourcemaps', {
describe: 'force the creation of sroucemaps'
}) //服务器端口
.option('port', {
string: true,
default: ,
describe: 'server port'
})
.argv
export default args;

args.js

在tasks 文件夹下新建scripts.js文件,配置如下:

import gulp from 'gulp';
import gulpif from 'gulp-if';
import concat from 'gulp-concat';
import webpack from 'webpack';
import gulpWebpack from 'webpack-stream';
import named from 'vinyl-named';
import livereload from 'gulp-livereload';
import plumber from 'gulp-plumber';
import rename from 'gulp-rename';
import uglify from 'gulp-uglify';
import {log,colors} from 'gulp-util';
import args from './util/args'; gulp.task('scripts',()=>{
return gulp.src(['app/js/index.js'])
.pipe(plumber({
errorHandle:function(){ }
}))
.pipe(named())
.pipe(gulpWebpack({
module:{
//loaders
rules:[{
test:/\.js$/,
loader:'babel-loader'
// loader:'babel'
}]
}
}),null,(err,stats)=>{
log(`Finished '${colors.cyan('script')}'`,stats.toString({
chunks:false
}))
})
.pipe(gulp.dest('server/public/js'))
.pipe(rename({
basename:'cp',
extname:'.min.js'
}))
.pipe(uglify({
compress:{properties:false},
output:{'quote_keys':true}
}))
.pipe(gulp.dest('server/public/js'))
.pipe(gulpif(args.watch,livereload()))
})

scripts.js

在tasks文件夹下创建处理模版的构建脚本pages.js

import gulp from 'gulp';
import gulpif from 'gulp-if';
import livereload from 'gulp-livereload';
import args from './util/args'; gulp.task('pages',()=>{
return gulp.src('app/**/*.ejs')
.pipe(gulp.dest('server'))
.pipe(gulpif(args.watch,livereload()))
})

pages.js

在tasks文件夹下创建处理CSS的构建脚本css.js

import gulp from 'gulp';
import gulpif from 'gulp-if';
import livereload from 'gulp-livereload';
import args from './util/args'; gulp.task('css',()=>{
return gulp.src('app/**/*.ejs')
.pipe(gulp.dest('server/public'))
})

css.js

在tasks文件夹下创建处理服务器的构建脚本server.js

import gulp from 'gulp';
import gulpif from 'gulp-if';
import liveserver from 'gulp-live-server'
import args from './util/args'; gulp.task('server',(cb)=>{
if(!args.watch) return cb();
var server = liveserver.new(['--harmony','server/bin/www']);
server.start();
gulp.watch(['server/public/**/*.js','server/views/**/*.ejs'],function(file){
server.notify.apply(server,[file])
})
gulp.watch(['server/routes/**/*.js','server/app.js'],function(){
server.start.bind(server)()
})
})

server.js

在tasks文件夹下创建浏览器监听相关文件

import gulp from 'gulp';
import gulpif from 'gulp-if';
import gutil from 'gulp-util';
import args from './util/args'; gulp.task('browser',(cb)=>{
if(!args.watch) return cb();
gulp.watch('app/**/*.js',['scripts']);
gulp.watch('app/**/*.ejs',['pages']);
gulp.watch('app/**/*.css',['css']);
});

browser.js

在tasks文件夹下创建清空制定文件clean.js

import gulp from 'gulp';
import del from 'del';
import args from './util/args'; gulp.task('clean',()=>{
return del(['server/public','server/views'])
})

clean.js

在tasks文件夹下创建build.js,把所有任务关联起来

import gulp from 'gulp';
import gulpSequence from 'gulp-sequence'; gulp.task('build',gulpSequence('clean','css','pages','scripts',['browser','server']));

在tasks文件夹下创建default.js

import gulp from 'gulp';

gulp.task('default',['build']);

default.js

配置.babelrc 文件

{
"presets":["es2015"]
}

配置gulpfile.babel.js文件

import requireDir from 'require-dir';

requireDir('./tasks');

打开server文件夹下的app.js文件,添加一行代码。如下图:

app.use(require('connect-livereload')());

  

4.安装各种包,请一定带版本号安装,不然又可能会出现版本和脚本不兼容,这些亲测可以启动。打开cmd,进入项目目录,执行安装以下包

npm install gulp@3.9.1 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-if@2.0.2 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-concat@2.6.1 --save-dev --registry=https://registry.npm.taobao.org

npm install webpack@4.35.3 --save-dev --registry=https://registry.npm.taobao.org

npm install webpack-stream@5.2.1 --save-dev --registry=https://registry.npm.taobao.org

npm install vinyl-named@1.1.0 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-livereload@4.0.1 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-plumber@1.2.1 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-rename@1.4.0 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-uglify@3.0.2 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-util@3.0.8 --save-dev --registry=https://registry.npm.taobao.org

npm install yargs@13.3.0 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-live-server@0.0.31 --save-dev --registry=https://registry.npm.taobao.org

npm install del@5.0.0 --save-dev --registry=https://registry.npm.taobao.org

npm install babel-loader@7.1.5 --save-dev --registry=https://registry.npm.taobao.org

npm install babel-core@6.26.3 --save-dev --registry=https://registry.npm.taobao.org

npm install babel-preset-env@1.7.0 --save-dev --registry=https://registry.npm.taobao.org

npm install webpack-dev-server@3.7.2 --save-dev --registry=https://registry.npm.taobao.org

npm install require-dir@1.2.0 --save-dev --registry=https://registry.npm.taobao.org

npm install babel-preset-es2015@6.24.1 --save-dev --registry=https://registry.npm.taobao.org

npm install gulp-sequence@1.0.0 --save-dev --registry=https://registry.npm.taobao.org

5.安装完,执行gulp --watch 启动项目

6.测试

在view/index.ejs输入以下代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
sss
<script src="/js/index.js" charset="utf-8"></script>
</body>
</html>

在/js/index.js输入以下代码

class  Test{
constructor(){
this.a='test'
}
}
let test=new Test();
document.body.innerHTML=test.a;

在浏览器输入http://127.0.0.1:3000/

es6学习笔记(一)环境搭建的更多相关文章

  1. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  2. 我的Java学习笔记 -开发环境搭建

    开始学习Java~ 一.Java简介 Java编程语言是一种简单.面向对象.分布式.解释型.健壮安全.与系统无关.可移植.高性能.多线程和动态的语言. Java分为三个体系: JavaSE(J2SE) ...

  3. Django学习笔记 开发环境搭建

    为什么使用django?1.支持快速开发:用python开发:数据库ORM系统,并不需要我们手动地构造SQL语句,而是用python的对象访问数据库,能够提升开发效率.2.大量内置应用:后台管理系统a ...

  4. cocos2d-x lua 学习笔记(1) -- 环境搭建

    Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后, ...

  5. SpringData JPA的学习笔记之环境搭建

    一.环境搭建 1.加入jar包   spring jar+jpa jar +springData jar >>SpringData jar包     2.配置applicationCont ...

  6. Mybatis学习笔记之---环境搭建与入门

    Mybatis环境搭建与入门 (一)环境搭建 (1)第一步:创建maven工程并导入jar包 <dependencies> <dependency> <groupId&g ...

  7. 前端框架vue学习笔记:环境搭建

    兼容性 不兼容IE8以下 Vue Devtools 能够更好的对界面进行审查和调试 环境搭建 1.nodejs(新版本的集成了npm)[npm是node包管理 node package manager ...

  8. Web安全测试学习笔记 - vulhub环境搭建

    Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:htt ...

  9. 【Django学习笔记】-环境搭建

    对于初学django新手,根据以下步骤可以快速进行Django环境搭建 虚拟环境创建 使用virtualenv创建并启用虚拟机环境 ,关于virtualenv可参考https://www.yuque. ...

  10. go 学习笔记之环境搭建

    千里之行始于足下,开始 Go 语言学习之旅前,首先要搭建好本地开发环境,然后就可以放心大胆瞎折腾了. Go 的环境安装和其他语言安装没什么特别注意之处,下载安装包下一步下一步直到完成,可能唯一需要注意 ...

随机推荐

  1. ueditor+word图片上传

    最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...

  2. mac 安装oh-my-zsh的问题

    安装完,如果想切换回mac原来的bash终端,可以: chsh -s /bin/bash 反之,切换回zsh: chsh -s /bin/zsh

  3. python 监听键盘事件

    #coding=utf- from tkinter import * root=Tk() def callback(event): print("点击键盘",repr(event. ...

  4. 6502 assemble 条件判断

    LDA #$ CMP #$ BNE notequal STA $ notequal: BRK

  5. uiautomator2 wifi连接手机

    [实施方法] 手机和电脑同时连接到同一个wifi上 1.开启远程adb #开启远端adb,这一步需要手机通过USB连接到电脑 adb tcpip 5555 #结果如下:restarting in TC ...

  6. 详解Intellij IDEA中.properties文件中文显示乱码问题的解决

    首先,你可能会见到如下提示: File encoding is disabled because .properties file (see Settings|Editor|File Encoding ...

  7. ArcGIS Python 唯一值专题

    import arcpy mxd = arcpy.mapping.MapDocument("current") lyr = arcpy.mapping.ListLayers(mxd ...

  8. app微信支付的集成步骤

    1.引用地址 //微信支付 compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+' 2.注册 private IWXAPI api ...

  9. SQL-W3School-高级:SQL 约束(Contraints)

    ylbtech-SQL-W3School-高级:SQL 约束(Contraints) 1.返回顶部 1. SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE T ...

  10. C之静态内存和动态内存

    静态内存: * 自动申请,自动释放* 大小固定,内存空间连续* 从栈上分配的内存叫静态内存 动态内存: * 程序员自己申请 * new/malloc* 大小取决于虚拟内存的大小,内存空间不连续* ja ...