commonjs

模块化开发及AMD、CMD、Require.js、sea.js、common.js、ES6的对比

两盒软妹~` 提交于 2020-10-27 12:21:51
一,模块化开发: 定义: 所谓的模块化开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定的功能。模块化开发的基础就是函数 使用函数封装: function func1 ( ) {      //... } function func2 ( ) {      //... } 注释 : 上面的函数func1 ()和func2 (),组成一个模块。使用的时候,直接调用就行了。这种做法的缺点很明显:影响了全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间看不出直接关系。 立即执行函数的写法: 使用"立即执行函数"(Immediately-Invoked FunctionExpression,IIFE),可以达到不暴露私有成员的目的。这个也是闭包处理的一种方式 var obj = ( function ( ) {      var _age = 0 ;      var func1 = function ( ) {        //...      } ;      var func2 = function ( ) {        //...      } ;      return {       m1 : func1 ,       m2 : func2      } ; } ) ( ) ; 使用上面的写法,外部代码无法读取内部的age变量。

Webpack5 开箱体验~欢迎品鉴

牧云@^-^@ 提交于 2020-10-13 01:23:16
如果您正在打包前端代码,很可能使用一个工具来实现。这个工具极有可能是Webpack。目前Webpack5已经处于beta阶段。 此版本重点关注以下内容: Commonjs 的 TreeShaking,更好的 TreeShaking 可以生成 ES5 和 ES6 / ES2015 代码 通过持久缓存提高构建性能 使用更好的算法和默认值来改善长期缓存 通过更好的树摇和代码生成来改善捆绑包大 清除处于怪异状态的内部结构,同时在 v4 中实现功能而不引入任何重大更改 通过引入重大更改来为将来的功能做准备,以使我们能够尽可能长时间地使用 v5 npm安装 cnpm i webpack@next webpack-cli -D { "name" : "webpack5" , "version" : "1.0.0" , "description" : "" , "main" : "index.js" , "scripts" : { "build" : "webpack" }, "keywords" : [], "author" : "" , "license" : "ISC" , "devDependencies" : { "webpack" : "^5.0.0-beta.29" , "webpack-cli" : "^3.3.12" } } 更彻底的Tree Shaking webpack

字节跳动八进八出,offer到手,发现项目不重要算法才最重要

回眸只為那壹抹淺笑 提交于 2020-10-07 08:56:41
先进行说明一下,本人刚刚大三结束,去年十二月的时候是投递了字节的视频架构的实习,共三轮技术面+一轮hr面,成功拿到offer实习了五个月。 今年秋招提前批是投了抖音架构,共三轮技术面+一轮hr面,已经成功拿到offer。 由于去年实习面经没有发,所以跟着本次提前批面经一共八轮面试一起发了。 面经更多的记录我当时面试的思考和一些相关问题回答的切入点,可能会跟其他面经直接给答案有所不同,其实掌握了切入点再进行扩展就是一份好的回答了~ 实习一面(50min) 面试我的的是一个二十出头的小哥哥,第一次面试我还是比较紧张的,还好小哥哥待人和蔼可亲,针对不会的问题并没有刁难我,反而给我不少提示(给点个赞) 首先是自我介绍,问了下我学习前端的途径和方法啥的,算是暖了个开场吧,然后是具体的问题。 1. ES6新特性说一下? 我首先说的是let、const,学长就直接让我详细说一下这两个。let、const有三个方面可说: 1.1 let、const声明的变量只在其所在的块代码内有效,隐式截取了作用域,有了块级作用域的概念。 1.2 暂时性死区,变量声明提升但在不会被赋值为`undefined`,不能在声明之前使用。 1.3 不允许重复声明。 然后给了两个例子说一下: 2. ES6之前的模块引入方式和区别 ES6之前模块引入主要是CommonJS和AMD两种。

Angular 10 - CommonJS or AMD dependencies can cause optimization bailouts

孤人 提交于 2020-08-26 10:00:08
问题 I've updated from angular 7.1.4 to 10. Now i receive strange warnings like this one: WARNING in C:\Sviluppo\Welcome\welcome-cloud-app\src\app\calendario-fasce\mese\mese.component.ts depends on src/app/interfaces/calendar/calendar.component. CommonJS or AMD dependencies can cause optimization bailouts. For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies For other warnings like this, i've added in angular.json the relative line, for example:

Hacker News 简讯 2020-08-06

时间秒杀一切 提交于 2020-08-17 18:57:17
最后更新时间: 2020-08-06 23:01 Simdjson: Parsing Gigabytes of JSON per Second - (github.com) Simdjson:每秒解析千兆字节的JSON 得分:295 | 评论:75 Usbkill – anti-forensic tool to halt computer when new USB device is connected - (github.com) Usbkill–当连接到新的USB设备时停止计算机的反取证工具 得分:183 | 评论:96 OpenCore bootloader – open-sourced Apple UEFI drivers, enabling Hackintosh - (github.com) OpenCore bootloader–开源的Apple UEFI驱动程序,支持Hackintosh 得分:159 | 评论:68 Scientists rename human genes to stop MS Excel from misreading them as dates - (theverge.com) 科学家将人类基因重新命名,以防止Excel将其误读为日期 得分:168 | 评论:138 Germany plans to dim lights at night to

export、export default和module.exports的用法及区别

倖福魔咒の 提交于 2020-08-16 22:26:04
概述 历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的 require 、Python 的 import ,甚至就连 CSS 都有 @import ,但是 JavaScript 任何这方面的支持都没有,这对开发大型的、复杂的项目形成了巨大障碍。 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。 ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。 ES6 模块的设计思想是尽量的静态化, 使得编译时就能确定模块的依赖关系,以及输入和输出的变量。 CommonJS 和 AMD 模块,都只能在运行时确定这些东西。 比如,CommonJS 模块就是对象,输入时必须查找对象属性。 模块功能主要由两个命令构成: export 和 import 。 export 命令用于规定模块的对外接口(即导出模块), import 命令用于输入模块(即导入模块)。 其中使用 import 命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载,所以ES6为用户提供了更方便的方法export default

require.js与IDEA的配合

只谈情不闲聊 提交于 2020-08-11 02:30:10
本文主要讲述在html中使用requirejs时,如何让IDEA更加智能识别javascript的方法。 测试时的目录结构,一种典型的 thinkphp 的结构,同时,在 a.thml 中通过 requirejs 引用 了 Public/Home/View/moduleA/a.js, 后面我们的测试,都在 a.js 中进行。 路径可识别 + amd class, 对象,方法,都能完美识别 class 导出 我们在 Class1.js 中导出一个 Class,且只使用 AMD 方式导出,代码如下: define([], function () { class Class1 { static a() { } ia() { } } return Class1; }) View Code 当我用 control 按下时,Class1 能识别,且能进入 导出的符号 c1,能自动联想class静态,实例方法 对象导出 我们使用 moduleA/obj1.js 文件导出一个对象,代码如下: define([], function () { return { /* * * obj1 的 a 方法 */ a: function () { }, } }) View Code 同导出class一样,能完美自动联想 路径不可识别 + amd class导出 我们在 require.config 中配置了