04_前端包管理工具&模块化

这篇具有很好参考价值的文章主要介绍了04_前端包管理工具&模块化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意事项:

​ 改模块代码不用重启服务器,修改config文件的时候需要重启服务器

​ nvm的安装路径和node的安装路径不能在同一路径下面

​ 有乱码问题使用管理员权限进行使用use方法

下载安装node

​ 使用命令进行安装

1.nvm list 查看已下载所有的node版本

2.nvm install 版本号 下载指定版本的node

3.nvm uninstall 版本号 卸载指定版本的node

4.nvm use 版本号 使用指定版本的node/更换指定版本

5.nvm version 查看nvm的版本

C:\Users\Administrator>nvm install 18.16.0

C:\Users\Administrator>nvm uninstall 18.16.0

C:\Users\Administrator>nvm use 14.15.3

C:\Users\Administrator>nvm list

C:\Users\Administrator>nvm version

package.json文件的作用和pom.xml一样

NPM

管理前端包的依赖

使用淘宝镜像

npm install -g cnpm --registry=https://registry.npmmirror.com

注意:

​ 报错的话就更换node的版本再进行下载

使用命令创建json

cnpm innit

后面的设置默认就直接回车
04_前端包管理工具&模块化,前端

安装依赖

有本地安装,全局安装

1.本地添加,一般都是使用本地

npm install jquery

只能在package.json文件这个包下进行添加
04_前端包管理工具&模块化,前端

04_前端包管理工具&模块化,前端

开发环境(默认)

​ 开发时会用到语法检查,包大小分析

npm install -D xxx

生产环境

–production

注意:当需要下载已经配置好的依赖,直接使用使用 npm install命令进行添加依赖包

yarn包管理工具

1.并行安装:

2.离线模式:

3.版本锁定:

4.信息输出 :

模块化

传统的问题

​ 请求过多:页面复杂度高

​ 依赖模糊:依赖的文件多

​ 命名空间污染:

两个核心

​ 暴露:自己可以选择暴露哪些文件,外部文件可以选择性引入

​ 封装引入:将复杂的文件封装成几个文件,和java文件相似

好处:

​ 避免命名空间污染

​ 代码复用性高

​ 责任分离,按需加载

​ 不关心模块之间依赖问题

​ 增加代码的可维护性

commjs规范(模块化)

在服务器端,模块的加载是运⾏时同步加载的;在浏览器端,模块需要提前编译打包处理。只有在运行时才能确定

语法:使用关键字module.exports require

暴露模块

module.exports = value;   //暴露部分
exports.xxx = value;   //暴露全部

引入模块

let m1=require('./m1');//引入整个文件
ES6模块化

不需要在运行的时候才确定

导出(export)两种方式

export {name,age};//按需导出
export default {name,age,fun};//默认导出所有

导入(import)两种方式

后缀名可以不用写

import {name,age} from './m1.mjs';//按需导入
import xxx from './m1.mjs';//导入所有

五.Webpack(自动化,模块化,前端开发构建工具)

1.作用

是一个JavaScript应用程序静态模块打包工具,可以将多个文件打包到单个文件中,解决了项目模块化和代码复用问题

2.webpack初体验

2.1本地安装(必须安装)

,命令⾏中是没有 webpack 命令的,因此要使⽤的话,需要在 package.json ⽂件中加⼊ scripts 属性,并将其值设置为对象,在对象中添加 “build”: “webpack index.js -o dist/bundle.js” 属性

2.2全局安装(可选)

看自己是否需要在命令行使用webpack命令,不需要可以不用安装

2.3测试:

执行完打包,就可以打开浏览器

3.webpack.config.js

3.1通过配置文件打包

代码在课件中,复制即可

4.webpack- dev- server

以上的方式都是静态方式,每次发生变动,都要重新打包才有效果,现在借用一个插件(标题)来实现自动打包和部署,该插件会帮我们启动⼀个简易的 http 服务器,并且动态监听源⽂件的变动,每当⽂件发生变动以后,它会⾃动帮我们重新加载该⽂件,⼤⼤的提升了开发的效率。

1.安装插件 :(代码课件复制即可)

2.修改配置

04_前端包管理工具&模块化,前端

里面属性的含义:

–open ⾃动打开浏览器

–port 服务监听的端⼝ 3000

–hot ⽂件变动后⾃动更新

3.启动:

上⾯配置修改完成后,再修改 index.html ⽂件中引⼊ bundle.js 的路径为 ./bundle.js 即

可,此时在命令⾏执⾏ yarn build 就会启动⼀个 http 服务器,并且会⾃动打开浏览器窗⼝。

然后可以通过修改 index.js ⽂件,⽐如将 red 修改为 gray ,会发现修改完成后,浏览器⾃动更

新为最新的代码。

5.html-webpack-plugin

**问题:**通过上⾯的配置,我们已经可以⽐较轻松的在 webpack 开发了,但是还存在⼀个⼩问题就是 index.html ⽂件中引⽤ bundle.js ⽂件是被我们写死的,如果哪天不叫这个名字,或者加⼊了其他依赖,无法进行使用

安装插件:(课件中复制即可)

6.css- loader

为了将 CSS 也当作是⼀个模块,当其它模块需要⽤到对应的 CSS 时,可以使⽤ impot/require 等

⽅式⽅便的导⼊,我们需要安装 style-loader 和 css-loader,并在 webpack.config.js 中添加这

些 loader

css-loader:将 index.css ⽂件解析为 webpack

能识别的模块,然后打包进 bundle.js ⾥

⾯,但是这样样式与 index.html 还没有关系,想要关联起来就得⽤到 style-loader 了。

style-loader:将打包到 bundle.js 中的样式绑定到 index.html 上,以 style 标签的形式写⼊进

去转换过程: index.css -> bundle.js -> style-loader ->

安装 css-loader 和 style-loader:课件有复制即可

7.ES6转ES5

问题:由于现在开发基本都是基于 ES6 语法进⾏的,但是市⾯上并不是所有浏览器都能够直接⽀持 ES6,因此我们可以使⽤ webpack 集成 babel 来进⾏版本的转换,在编译时⾃动将 ES6 转换为 ES5,也就可以兼容绝⼤部分浏览器了。

流程步骤课件有复制即可

注意:exclude 表示排除掉 node_modules 下载的依赖项。这样可以加速编译效率,⽽且我们也只需要对我们的项⽬ src 中的源文件进行编译即可。新增 .babelrc 配置⽂件,并加⼊以下内容文章来源地址https://www.toymoban.com/news/detail-518312.html

{
  "presets":["env","stage-0"],
  "plugins":["transform-runtime"]
}

bpack 集成 babel 来进⾏版本的转换,在编译时⾃动将 ES6 转换为 ES5,也就可以兼容绝⼤部分浏览器了。

流程步骤课件有复制即可

注意:exclude 表示排除掉 node_modules 下载的依赖项。这样可以加速编译效率,⽽且我们也只需要对我们的项⽬ src 中的源文件进行编译即可。新增 .babelrc 配置⽂件,并加⼊以下内容

{
  "presets":["env","stage-0"],
  "plugins":["transform-runtime"]
}

到了这里,关于04_前端包管理工具&模块化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端工程化之模块化

    前端模块化是一种标准,不是实现 理解模块化是理解前端工程化的前提 前端模块化是前端项目规模化的必然结果 前端模块化就是将复杂程序根据规范拆分成若干模块,一个模块包括输入和输出。而且模块的内部实现是私有的,它通过对外暴露接口与其他模块通信,而不是直

    2024年02月11日
    浏览(425)
  • 前端基础(Vue的模块化开发)

      前言 :前面学习了前端HTML、CSS样式、JavaScript以及Vue框架的简单适用,接下来运用前端模块化编程的思想,继续学习Vue框架,完成自己项目项目的搭建。 目录 响应式基础 ref reactive 学习成果展示 Vue项目搭建 搭建自己的vue项目 总结  关于ref和reactive,官方解释如下,另外一

    2024年02月12日
    浏览(53)
  • 前端面试题---模块化和性能优化

    模块化是一种将程序代码划分为独立、可复用的模块的开发方法。它能够提高代码的可维护性、可复用性和可扩展性,使得代码更易于组织、调试和协作。 常见的模块化方案包括: AMD(Asynchronous Module Definition):AMD是一种异步加载模块的规范,主要用于浏览器环境。它使用

    2024年02月10日
    浏览(50)
  • 简单聊两句前端模块化

    在前端开发中,模块化是一种将代码拆分为独立模块的开发方法。它通过将功能相似或相关的代码组织成可复用、可维护的模块,以提高开发效率和代码质量。 模块化的主要目的是解决传统的JS开发存在的问题,例如全局命名冲突、代码复用困难、依赖管理混乱等。通过模块

    2024年02月05日
    浏览(41)
  • 前端基础(ES6 模块化)

    前言:前面学习了js,引入方式使用的是script s\\\"XXX.js\\\",今天来学习引入文件的其他方式,使用ES6 模块化编程,学习组件化编程中的全局注册和局部注册的方法。 目录 复习 ES6 模块化导出导入 解构赋值 导入js文件 export default 全局注册 局部注册 回顾前面学习内容,用script s\\\"

    2024年02月11日
    浏览(62)
  • Vuex模块化管理

    如果你的项目是一个小型项目,就用不着使用模块化; 但是,如果你参与的项目是一个中大型项目,那Vuex模块化,必不可少,否则整个文件很臃肿,也很难管理。 通过模块化管理:各自模块下都有自己的state及方法,各自模块管理自己的数据,这样不容易造成混乱。 第一步

    2024年02月15日
    浏览(45)
  • 前端node.js入门-前端工程化与模块化

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Node.js 入门  什么是 Node.js? 什么是前端工程化?   Node.js 为何能执行 JS?  fs 模块 - 读写文件  path 模块 - 路径处理 URL 中的端口号  常见的服务程序  Node.js 模块化 什

    2024年02月14日
    浏览(86)
  • 模块化打包工具-初识Webpack

    在上一篇文章中提到的ES Module可以帮助开发者更好地组织代码,完成js文件的模块化,基本解决了模块化的问题,但是实际开发中仅仅完成js文件的模块化是不够的,尤其是面对一个较为庞大的工程项目的时候,主要仍有以下几个问题需要解决: ES Module是ES6新语法,一些老的

    2024年02月08日
    浏览(128)
  • 前端框架的CSS模块化(CSS Modules)

    创作纪念日之际,来给大家分享一篇文章吧 聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些

    2024年03月27日
    浏览(47)
  • 前端组件封装:构建模块化、可维护和可重用的前端应用

    前端开发领域的快速演进已经将前端应用的规模和复杂性提升到了一个新的水平。在这个背景下,前端组件封装成为了一项关键实践,旨在构建模块化、可维护和可重用的前端应用。在本文中,我们将深入研究前端组件封装的重要性、设计原则、常见封装模式以及如何在实际

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包