前端另一个运行环境NodeJS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端另一个运行环境NodeJS相关的知识,希望对你有一定的参考价值。

参考技术A 说前端,就不得不说javascript,JavaScript可以直接在浏览器中运行,它的另一个运行环境就是NodeJs。

浏览器中写JavaScript是超级简单的,打开浏览器,然后按F12或者鼠标右键,选择检查(检查元素),再选择控制台,输入Console.log(‘Hello world!’),打印出经典的Hello World!。

让javaScript这门语言能成为前端的老大,是应为NodeJs,有了NodeJs,javaScript也可以做为服务端部署,是不是感觉前端也能往全栈发展,开发出属于自己的应用,不要太开心了哦。

现在开始安装NodeJs啦,推荐菜鸟教程: https://www.runoob.com/nodejs/nodejs-install-setup.html以及NodeJs 官网: https://nodejs.org/en/download/

在这里注意说一下注意事项:

1.  确定安装好node(npm随node安装程序自动安装,npm是对Node.js依赖的包进行管理)之后

2.  配置npm安装全局模块时的路径和缓存cache的路径

Npm执行全局安装的命令:npm install webpack -g等,默认会将模块安装在C:\Users\用户名\AppData\Roaming路径下的npm和npm_cache,这样就会导致不方便管理此处的模块并且占用C盘空间,这里建议进行自定义的全局模块安装目录的配置,在node.js安装目录下新建两个文件夹node_global和node_cache:

在cmd中执行下面两个命令即可:

npm config setprefix "D:\Program Files\nodejs\node_global"

npm config setcache "D:\Program Files\nodejs\node_cache"

执行之后,配置环境变量,如下:

“环境变量”-> “系统变量”:新建一个变量名为“NODE_PATH”,值为:node安装目录\node_global\node_modules

“环境变量” -> “用户变量”:编辑用户变量里的Path,讲相应npm的路径(“C:\Users\用户名\AppData\Roaming\npm”)改为:node安装目录\node_global

测试:

安装成功,自定义文件夹如下所示:

在cmd命令下执行webpack -v 查看webpack版本,出现这个问题:‘webpack’不是内部或外部命令,也不是可运行的程序或批处理文件:

确认安装好了NodeJS,也安装了webpack

检查配置的路径:环境变量下的用户变量的path:

环境变量下的系统变量的NODE_PATH:

环境变量下的系统变量的Path,发现时少增加了D:\software\node\node_global,增加上之后:

因为安装的webpack是高版本,还需要全局安装webpack-cli,命令:npm install webpack-cli -g,安装好后就可以了:

坚信问题是促使我们前进,问题也是让我们产生了价值的意义所在,欢迎评论留言点赞。

前端自动化工作流环境

可以避免重复操作
前端开发的编译操作
 
一.Node环境
Node.js 不是一个js文件,也不是一个JS框架。
而是 Server side Javascript runtime 服务器端javascript运行时
 
nodeJS分支
io.js 社区的产物 15年又合并了 后来又拆开了
Node 4.x == 官方的
node 5.x == io.js
 
1.直接安装:
Mac
    官网下载 下一步完成 终端 node -v npm -v
windows
    官网下载 下一步完成 cmd path 看环境变量 node -v npm -v
 
2.NVM 安装:
Nvm node版本管理工具 node version manager
可以快速切换node.js版本
 
环境变量
 操作系统提供的系统级别存储的变量
 系统变量:所有当前系统用户共享的变量
 用户变量:当前用户的变量,不区分大小写,变量可以嵌套 %temp% = %abc%jsdkfls
 PATH变量:路径的引用,只要添加到PATH变量中 就可以再任何目录下搜索
 
3.Node用途
 3.1 开发web应用程序 动态网站 开发提供数据的服务端API
 3.2 前端开发工具基础 主要用这个实现自动化
 
在终端中 输入node 可以进入REPL环境(控制台环境) 可以执行js代码
 
node webserver demo
终端 cd 进入js目录 node js名 执行服务器监听8080端口
 
‘use strict‘ //启用严格模式
 
//创建一个http服务器
var http = require(‘http‘);
 
//创建一个服务
 
var server = http.createServer(function(request,response){
    //处理请求和响应     
    response.writeHead(200,{
        ‘Content-Type‘:‘text/html‘,
        ‘key1‘:‘val1‘
    });
    response.write(‘<h1>write</h1>‘);
    response.end();
});
 
//启动服务
server.listen(8080,function(error){
    console.log("listen 8080");
});
 
4.NPM Node Packge Manager (node 包管理)
因为第三方的包非常之多,所以要有一个这样的包管理工具 可用来安装、卸载、更新包 类似nuget
场景:需要一个包A,A依赖B,B依赖C 包之间的引用非常多 这时npm会自动检测依赖 全部拿下来
 
安装包:打开终端->npm install {packge_name}
移除:npm uninstall packge_name
 
5.bower
前端包管理工具 可以安装bootstrap jquery icons select2等前端包 没什么用 可以看看都有什么
 
6.Gulp 
自动化工具,将重复工作抽象成多个任务
css压缩、js压缩、html压缩、图片尺寸优化
如果慢用国内的 npm.taobao.org
名字不要重名 
1.在当前文件夹下 npm init 全部默认就行 创建个package.json
2.npm install gulp —save-dev  //安装到项目
3.安装成功后 在项目根目录中创建文件 gulpfile.js
4.var gulp = require(‘gulp‘);gulp.task(‘default‘, function() {  // 将你的默认的任务代码放在这  console.log("hi gulp!");});
gulp API:
 1.gulp.src(‘src/index.html‘)  .pipe(gulp.dest(‘dist/‘)) //复制到此处
 2.gulp.task(‘default‘, function() {}); //定义一个任务
 3.gulp.watch(‘src/index.html‘,[‘copy‘]);  //监听
 
简单自动化:
var gulp = require(‘gulp‘);gulp.task(‘copy‘, function() {  gulp.src(‘src/index.html‘)  .pipe(gulp.dest(‘dist/‘)) //复制到此处});gulp.task(‘dist‘,function(){    gulp.watch(‘src/index.html‘,[‘copy‘]);})
 
当修改src/index.html 时 dist也发生改变
 
插件:
 
gulp-less: 编译less为 css文件
gulp.task(‘less‘,function(){    gulp.src(‘src/style/*.less‘)    .pipe(less())    .pipe(gulp.dest(‘dist/css/‘));});gulp.task(‘lesswatch‘,function(){    gulp.watch(‘src/style/*.less‘,[‘less‘]);});
 
Gulp-concat: 合并文件
Gulp-uglify :最小化js
Gulp-rename:重命名文件
Gulp-cssnano:最小化css文件
Gulp-minify-html:最小化html
Gulp-imagemin:最小化图像
 
Browsersync:浏览器同步
安装 npm install -g browser-sync
检查 browser-sync --version
执行 browser-sync start --server --files "**” 检测该目录下所有的文件改动
代理模式 比如.net中的 localhost:6321
browser-sync start --proxy “localhost:6321" --files "**”
 
如果是host配置的域名则不可以 需要配置
  域名 端口 等 见API:
browserSyncAPI:
var gulp = require(‘gulp‘);
var browserSync = require(‘browser-sync‘);

gulp.task(‘browser-sync‘, function() {
    browserSync({
        files: "**",
        server: {
            baseDir: "./"
        }
    });
});

gulp.task(‘default‘, ["browser-sync"]);
 
 
8.grunt 在运行的时候会产生很多临时文件,gulp则不会 ,一样的东西。
 
 
 
 
 

以上是关于前端另一个运行环境NodeJS的主要内容,如果未能解决你的问题,请参考以下文章

nodejs介绍

前端框架简析

如何安装NodeJS NodeJS如何运行

前端自动化工作流环境

Vue开发实例(01)之环境搭建nodejs与运行第一个Vue项目

node.js是啥