导航:首页 > 文件教程 > nodejswebpack教程

nodejswebpack教程

发布时间:2023-05-05 18:56:50

1. Webpack前端项目打包配置

1、安装依赖包

初始化项目为nodejs项目

另一种是在html中通过img标签的src引入,因为webpack对html支持不友好,所以需要借助插件html-webpack-plugin

第三种是借用拷贝插件,直接强行拷贝所有图片,因为本项目图片是在xslt中引用,所以裤磨采用第三种和第一种结合的方式处理图片,在plugin参数中拆纯肆添加

如果css是与其余的css一起打包,那么其中对fonts资源的引用路径也会自动发生变化,一定注意,是个大坑旅轿!!

2. webpack 创建一个VUE项目

一、创建并初始化VUE项目
1.安装完VUE和nodejs后在指定文件夹根目录生成项目文件夹
在命令行衡毕内进入当前文仿粗件夹
输入

其他选项默认

生成的文件备拦镇夹

3.安装完毕运行
yarn start
未安装yarn的可直接运行
npm run dev

3.删除初始化多余项目
3.1删除components文件夹下的helloworld文件
3.2在app.vue中删除以下内容(如果报错请检查是否存在空格未删除)

4.让项目先跑起来
npm run dev

*注在开发测试环境使用-D/--seve-dev;生产环境使用-S/--seve

3. 如何系统地学习Node.js

1.《nodejs入门》,才38页,很好,书中项目做一下,学会基础

2.《nodejs开发指南》。180多页,很好,书中项目做一下,知道基础,及基本的配合express,jquery,bootstrap,数据库MongoDB

另附一些node实现书中例子的一些变化使用Express3.0实现<Node.js开发指南

3.开始看express创建初始项目的源代码对比2中的书,发现express更新后新的特性:Migrating from 3.x to 4.x · strongloop/express Wiki · GitHub

看express官网api

英文:Express 4.x - API Reference

中文:Express - api参考

4.之后发现,一个系列课程,从零开始nodejs系列文章:从零开始nodejs系列文章

其中 文章: Node.js开发框架Express4.x:Node.js开发框架Express4.x ,详细介绍了express4项目的基本内容,很好

文章:用Nodejs连接MySQL:用Nodejs连接MySQL,介绍mysql与node基本,及数据库连接池,宕机,连接超时等node问题解决办法,node-mysql官网也有相应英文解决办法

5.node+json:node.js里面怎么创建和解析JSON格式的文件?

更全的是这一个How to parse JSON using Node.js? 但要注意如果require json,只加载一次,更新之后,再使用,可能还是老版本

json不好查看的问题:读写 JSON 文件 · Issue #73 · zhanhongtao/blog · GitHub

6.node邮件验证:Nodejs发邮件组件Nodemailer

选择适合的Node.js授权认证策略

7.很全的node mole Moles · joyent/node Wiki · GitHub

8.文件操作,要么官方文档:File System Node.js v0.12.2 Manual & Documentation,

或者node基础-文件系统node.js 文件操作,有一个要注意的是 存储文件时,比如writefile写路径 要使用path.join(__dirname, “相对于当前文件路径”); 如path.join(__dirname, "../upload/recordList/" + generateID("record") + ".json");,后端要采用这种dirname的形式,前端可以直接写相对于当前文件路径的形式

4. 如何用nodejs搭建web服务器

使用Node.js搭建Web服务器是学习Node.js比较全面的入门教程,因为实现Web服务器需要用到几个比较重要的模块:http模块、文件系统、url解析模块、路径解析模块、以及301重定向技术等,下面我们就一起来学习如何搭建一个简单的Web服务器。

作为一个Web服务器应具备以下几个功能:

1、能显示以.html/.htm结尾的Web页面

2、能直接打开以.js/.css/.json/.text结尾的文件内容

3、显示图片资源

4、自动下载以.apk/.docx/.zip结尾的文件

5、形如http://xxx.com/a/b/ , 则查找b目录下是否有index.html,如果有就显示,如果没有就列出该目录下的所有文件及文件夹,并可以进一步访问。

6、形如http://xxx.com/a/b, 则作301重定向到http://xxx.com/a/b/ , 这样可以解决内部资源引用错位的问题。

引入需要用到的几个模块:


//http协议模块varhttp = require('http');//url解析模块varurl = require('url');//文件系统模块varfs = require("fs");//路径解析模块varpath = require("path");

创建服务并在指定的端口监听:


//创建一个服务varhttpServer = http.createServer(this.processRequest.bind(this));//在指定的端口监听服务httpServer.listen(port,function(){console.log("[HttpServer][Start]","runing at http://"+ip+":"+port+"/");console.timeEnd("[HttpServer][Start]");});

在创建服务的时候需要传递一个匿名函数processRequest 对请求进行处理,processRequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,response是用来设置响应头以及对客户端做出响应操作。


processRequest:function(request,response){varhasExt =true;varrequestUrl = request.url;varpathName = url.parse(requestUrl).pathname;//对请求的路径进行解码,防止中文乱码pathName = decodeURI(pathName);//如果路径中没有扩展名if(path.extname(pathName) ===''){//如果不是以/结尾的,加/并作301重定向if(pathName.charAt(pathName.length-1) !="/"){pathName +="/";varredirect ="http://"+request.headers.host + pathName;response.writeHead(301, {location:redirect});response.end();return;}//添加默认的访问页面,但这个页面不一定存在,后面会处理pathName +="index.html";hasExt =false;//标记默认页面是程序自动添加的}//获取资源文件的相对路径varfilePath = path.join("http/webroot",pathName);//获取对应文件的文档类型varcontentType =this.getContentType(filePath);//如果文件名存在fs.exists(filePath,function(exists){if(exists){response.writeHead(200, {"content-type":contentType});varstream = fs.createReadStream(filePath,{flags:"r",encoding:null});stream.on("error", function() {response.writeHead(500,{"content-type":"text/html"});response.end("<h1>500 Server Error</h1>");});//返回文件内容stream.pipe(response);}else{//文件名不存在的情况if(hasExt){//如果这个文件不是程序自动添加的,直接返回404response.writeHead(404, {"content-type":"text/html"});response.end("<h1>404 Not Found</h1>");}else{//如果文件是程序自动添加的且不存在,则表示用户希望访问的是该目录下的文件列表varhtml ="<head><meta charset='utf-8'></head>";try{//用户访问目录varfiledir = filePath.substring(0,filePath.lastIndexOf('\'));//获取用户访问路径下的文件列表varfiles = fs.readdirSync(filedir);//将访问路径下的所以文件一一列举出来,并添加超链接,以便用户进一步访问for(variinfiles){varfilename = files[i];html +="<div><a href='"+filename+"'>"+filename+"</a></div>";}}catch(e){html +="<h1>您访问的目录不存在</h1>"}response.writeHead(200, {"content-type":"text/html"});response.end(html);}}});}

请求处理函数中有几个重点需要说一下:

对于路径中有中文的,浏览器会自动进行编码(英文不变,中文会变),因此在接收到地址后,需要对地址进行解码,否则最后得到的路径和真实路径不相符,

当访问路径不是以具体的文件结尾,并且不是以/结尾,则需要通过重定向加上/,表示当前目录,否则当前路径下的静态资源会找不到

如果访问路径是目录,则列出该目录下所有文件及文件夹,并可以点击访问,为了让中文目录能正常显示,则还要在header中设置charset=utf-8

核心代码就这么多,大概140行左右,完整的代码已上传到github:https://github.com/git-onepixel/Node,

如果要运行demo,打开cmd切换到根目录,运行node start 即可。

5. 如何在 NodeJs 上搭建 React 开发环境

1. 安装 nodejs :根据你的 Windows 类型(x86或x64)下载相应的安装包,安装完成后,在任一目录下打开 cmd 窗口并运行 node -v 命令,则会输出 node 的版本信息。
    --注:在 windows 操作系统中,如果把 nodejs 安装在系统盘(如:C盘),初始化时会提示 nodejs 没有操作文件的权限(无法新建 package.json 文件)。
   (建议在非系统盘中安装 nodejs ,本例安装路径:D:\Program Files)
2. 初始化猜信 npm:安装 nodejs 时会默认安装 npm,在 cmd 窗口中运行 npm -v 命令会输出 npm 的版本信息。
    接着运行 npm init 命令,并设置相关参数即完成 npm 初始化。这时 nodejs 会在当前目录下(这里是:D:\Program Files\nodejs 目录)新建一个 package.json 文件。    
3. 利用 npm 安装 react 相关的包:  
  3.1 运行 npm install react react-dom --save-dev 命令,安装 react 和 react-dom 包。  
       其中 --save-dev 表示在 package.json 文件的 devDependencies 节点下添加包的引用,--save 表示在 package.json 文件的 dependencies 节点下添加包的引用
  3.1 运行 npm install webpack webpack-dev-server --save-dev 命令,安装 webpack 和 webpack-dev-server 包。
        webpack 用来打包并压缩 js 文件,webpack-dev-server 用来实时同步修改过的 js,html,css 文件到浏览器。
 穗老轮 3.5 运行 npm install jsx-loader --save-dev 命令,安装 jsx-loader 包(用来把按 ES5 规范编写的 .jsx 文件转成 .js 文件)含返。
       如果需要支持符合 ES6 规范的脚本文件(.js 或 .jsx),还需安装下面 4 个包:babel-core babel-loader babel-preset-es2015 babel-preset-react。
       如果需要用到路由,还需安装:react-router。
http://blog.csdn.net/zmx729618/article/details/60957363

6. 基础篇——webpack基础用法(三)

  上一章节主要介绍了 entry output loaders plugins mode 等核心概闷裂念以及简单的使用方法的介绍,接下来主要介绍文件的解析、压缩、热更新原理等。

安装url-loader
npm install url-loader -D

上图是自己写的demo,在search.js中引用图片资源,此示例为未使用url-loader时文件大小 134kb

上一节中蚂宴闭讲解了 webpack文件监听 可以实现文件的自动构建,但是每次必须手动刷新浏览器,那么有没有不用祥指每次手动刷新浏览器,自动构建文件呢?答案是肯定的, 热更新

注意:WDS因为是放在内存中,而watch是有对系统进行文件的输出,所以在构建速度上WDS也是明显快于watch的
接下来我们实际操作一下:

在package.json中添加一个dev命令,配置好webpack-dev-server;
npm i webpack-dev-server -D

修改webpack.config.js中的 mode development ,因为 proction 是生产环境下使用的,而 development 是开发环境下使用的,所以在使用WDS的情况下,要将mode修改为 development

配置 HotMoleReplacementPlugin 插件和 devServer ,因为HotMoleReplacementPlugin是webpack内置插件,所以不用额外安装的。

注:通常适用express、koa等后端服务,需要引用nodejs

注:一般js用Chunhash,css用Contenthash

  到这里 webpack基础篇 已经讲完了,下一章节开始 webpack进阶篇

7. 用npm怎么安装webpack

安装nodejs,你清举可以挫下面的地址 下载完成以后就可以一直下一步安装了。我是安装在了核察d盘的根目录改正茄下 安装完成以后可以使用cmd输入命令查看是否安装成功。 再通过查看环境变量,我们可以看到下面的D:\nodejs\ 说明确实安装成功了

8. 如何使用webpack打包ES6的Nodejs后台程序

因为webpack可以直接打包es6语法在浏览器中运行,不然的话es6语法无法在浏览器中运行

阅读全文

与nodejswebpack教程相关的资料

热点内容
繁体中文输入工具 浏览:916
pc桌面壁纸文件夹 浏览:473
微信怎么添加群 浏览:781
40岁男人适合的微信名 浏览:925
编程里比例怎么打 浏览:215
苹果12两个app如何分屏 浏览:592
ps下载完不是压缩文件 浏览:362
电脑中的个人文件包括什么 浏览:572
网络连接一般什么密码 浏览:199
java定时器quartz实例 浏览:259
稻壳excel文件太大怎么弄 浏览:901
文件里的视频如何保存到相册 浏览:428
手机百度云文件电脑 浏览:957
编程怎么做到时钟精准 浏览:912
锤子用过的壁纸在哪个文件里 浏览:468
qq网站安全性未知访问不了怎么办 浏览:270
燕秀怎么修改编程人名字 浏览:789
2012年天之眼导航升级 浏览:595
如何安装视频文件 浏览:315
红米2A升级miui9 浏览:927

友情链接