在前端学习过程中,您是否逐渐了解到一些新的工具 npm,webpack,babel...,但是为什么要使用这些工具呢,它们给我们带来了是么便利?
阅读下面这篇文章也许会给你解答:
这是是现代 JavaScript 的快速简单指南之一,给前端初学者详细解释了现代 JavaScript 工作流程。
Node Package Manager(npm )是一个命令行工具,可以帮助我们查找、安装和更新插件、库和工具存储库。
阅读下面的 npm 链接,但不要担心在您的计算机上运行任何命令。本节是关于提高你对 npm 的认识。您将有机会在接下来的项目中使用您在这里学到的东西。
说到包管理器,yarn 的受欢迎程度不低于 npm,有兴趣的同学可以前往 yarn 官网 (opens new window)进行学习
Webpack 是一个模块打包器。但是,这是什么意思?这意味着 Webpack 将 JS 文件编译成一个主文件,或者您想要将代码捆绑到的许多文件,但通常它是一个捆绑文件。
首先查看 webpack 一一个启动并运行它的示例:
阅读下面文章,了解为什么要使用 webpack
阅读下面教程,您将会掌握 webpack 基本入门使用方法:
另外 ,parcel 也是目前很受欢迎的模块打包器,它是一个快速、零配置的 Web 应用程序捆绑器。有兴趣的同学可以前往parcel 官网 (opens new window)进行学习
随着 Web 应用程序复杂性的增长,我们需要能够在多个文件中编写代码并从另一个文件中引用函数(或变量)。模块化这有助于代码重用、可读性和维护。
每个 JavaScript 文件都称可以为模块,每个 JavaScript 文件(每个模块)都具有自己的作用域。意味着您在 JavaScript 文件中使用 let 或 const 定义的每个变量(函数、类)仅在该文件中可用,而在其他文件中不可用。
此时,如果您在 util.js 文件中有一个 sum 函数,而在另一个 index.js 文件中想使用它怎么办?
//util.js const sum = (num1, num2) => { return num1 + num2; };
//index.js console.log(sum(1, 2)); // ReferenceError: sum is not defined
使用 import 和 export 模块化的好处就可以看到了。你只需要两个步骤
//util.js export const sum = (num1, num2) => { return num1 + num2; };
// index.js import { sum } from "./util.js"; console.log(sum(1, 2));
这样就实现了一个简单的模块化编程。为了使用上述功能,您需要将 index.js 连接一个的 HTML 页面中(例如 index.html)
<script src="index.js"></script>
这您还不能在浏览器中正常运行 ES6 模块,先不要着急,后面我们会有详细教程
请您先认真学习 impor、export 语法:
如何在浏览器中运行 ES6 模块呢?有两种方式:
在浏览器中直接运行 ES6 的模块化,需要使用<script type="module"></script>
您需要使用模块打包器(例如 webpack/parcel)才能使其工作
我们先来看第一种方式:
按照上述步骤一步一步实现,您这时还不能在浏览器成功运行 ES6 模块,您将得到语法错误:Uncaught SyntaxError: Cannot use import statement outside a module(opens new window)
使用下面两个步骤,能够成功在浏览器原生运行 ES6 模块
<script type="module" src="index.js"></script>
完成以上修改后,您会因为跨域问题得到一个错误:错误截图 (opens new window),具体原因,可以参考这篇文章(opens new window)
终端进入目标文件夹(也就是需要启动服务的文件夹),然后在终端输入如下命令:
http - server - c - 1;
默认端口为 8080 。 复制 http:// localho:8080 粘贴到浏览器中
恭喜你!这样您就成功在浏览器中运行 ES6 模块
本地快速启动一个服务
以下提供几种开启本地服务的方法,选择你喜欢的方式:
请运行,npm init,回答所有基本问题,这将在您的项目中创建一个 package.json 文件。
webpack-dev-server 是一个包,它允许您拥有一个我们将在最后一步中使用的本地 Web 服务器。 在终端输入如下命令即可:
npm install webpack webpack-cli webpack-dev-server html-webpack-plugin --save-dev
webpack.config.js 用于配置 webpack
在 index.html 中 ,添加以下 HTML,将 JavaScript 文件链接到 HTML 文件。
//index.html <!DOCTYPE html> <html> <head> <title>My App</title> </head> <body> <script src="bundle.js"></script> </body> </html>
在 util.js 实现 sum 函数
//util.js export const sum = (num1, num2) => { return num1 + num2; };
在 index.js 中,引入 util 模块中的 sum 功能函数。添加以下 js 代码
//index.js import { sum } from "./util.js"; alert(sum(1, 2));
在 webpack.config.js 内部,编写以下配置:
const HtmlWebpackPlugin = require("html-webpack-plugin"); const path = require("path"); const config = { mode: "development", entry: "./index.js", output: { path: path.resolve(__dirname, "dist"), filename: "bundle.js", }, plugins: [ new HtmlWebpackPlugin({ template: "./index.html", filename: "index.html", inject: false, }), ], }; module.exports = config;
在终端输入如下命令即可:
npx webpack serve
您现在可以在浏览器中打开http://localhost:8080 (opens new window)并更改您的 HTML 和 JS 文件,这些文件将在浏览器中自动更新。
下面是更多关于模块化的文章:
参考示例图 (opens new window), 运用 Es6 模块化编程思想,完成一个如下 Simon 游戏。
SimonGame 介绍:
用例需求
要求
把你今天觉得做得最好的代码放在 Github 后进行提交。
依然把今天的学习用时,收获,问题进行记录。
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!