首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端构建这十年

CommonJS 本来叫ServerJs,其目标本来是为浏览器之外javascript代码制定规范,在那时NodeJs没有出生,有一些零散应用于服务端JavaScript代码,但是没有完整生态...这依赖ES module静态语法,在编译阶段就可以确定模块导入导出有哪些变量。...所以不需要webpack复杂配置,只需要一个parcel index.html命令就可以直接起一个自带热更新server来开发vue/react项目。...浏览器获取到并编译main.js,再次发出 2 个请求,一个是 vue 请求,因为前面已经说了 vue 被预先缓存下来,直接返回缓存给浏览器,另一个是App.vue文件,这个需要@vitejs/plugin-vue...: max-age=31536000,immutable 进行强缓存,因此一旦被缓存它们将不需要再次请求,即使缓存失效只要服务没有被杀死,编译结果依然保存在程序内存中也会很快返回。

94710

如何缩小您docker 镜像体积

当Dockerfile指令修改了,复制文件变化了,或者构建镜像时指定变量不同了,对应镜像层缓存就会失效,某一层镜像缓存失效之后,它之后镜像层缓存都会失效。...因此我们可以先拷贝package.json,然后安装NPM模块,最后才拷贝其余源代码。这样的话,即使源代码变化,也不需要重新安装NPM模块。...build 时,如果没有新增依赖,docker将使用缓存node_modules,这样就减少了部署时间。...基础镜像标签尽量不要用latest 因为镜像更新,latest会指向不同镜像,此时构建可能会失效,最好指定确定镜像标签; 5 ....RUN指令删除多余文件 假设我们更新了 apt-get 源,下载,解压并安装了一些软件包,它们都保存在/var/lib/apt/lists/目录中。

2.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Vue05之ElementUI入门+nodejs环境搭建+运行nodejs项目

javascript和java除了在名称上优点类型,没有半毛钱关系 nodejs是JavaScript运行时环境,JEE是java运行时环境。  ...2.2 npm是什么 简单说,npm就是nodejs包管理工具,是nodejs package manager简称。 通俗讲述npm作用: 为啥我们需要一个包管理工具呢?...npm全局安装位置 node_cache npm缓存路径 2.3.3 配置环境变量 环境变量 配置示例 新增NODE_HOME C:\Program Files\node-v10.16.3-win-x64...修改PATH 在最后添加:;%NODE_HOME%;%NODE_HOME%\node_global; 注意:对于path变量是修改,而不能将以前变量清除 配置完成,可以通过以下命令查看配置:...全局安装位置)和node_cache(npm缓存路径)与npm联系起来 2:如果执行命令卡死,可以删除C:\Users\用户名.npmrc 重新执行。

1.5K10

Node.js简介与安装.md

/configure --prefix=/usr/local/nodejs #注意后面这个参数 make && make install 补充:Windows环境变量 配置npm全局模块存放路径以及...进入我电脑→属性→高级→环境变量在系统变量下新建“NODE_PATH”,输入“D:\Program Files\nodejs\node_global\node_modules” 3.Nodejs简单使用...=> 将下载包保存在项目配置信息(开发依赖)里面 npm list #显示项目里面安装那些模块 npm cache clean #清除模块下载缓存 ########实例####### npm install...-g #全局删除 forever 包 npm install n -g #更新npm与mode.js n stable #nodejs更新 #指定版本安装模块 npm info 模块名...#查看可用版本 npm i 模块名@版本 npm outdated #显示项目中需要更新模块 在pakeage.json (^1.1.0)-保留主版本号不变 (~1.1.2) (*)-安装最新版本

1.8K20

深聊Nodejs模块

更新日志),所以 Nodejs 采用了当时比较先进一种模块化规范来实现服务端 JavaScript 模块化机制,它就是 CommonJS,有时也简称为 CJS。...以上只是对于 CommonJS 规范简单介绍,更多具体内容可以参考:CommonJS规范二、Nodejs 模块化实现Nodejs 在实现中并没有完全按照规范实现,而是对模块规范进行了一定取舍,同时也增加了一些自身需要特性...,定位到具体文件Nodejs 会新建一个模块对象,然后根据路径载入缓存以后进行编译,扩展名不同,编译方式也不同,它们编译方法都注册在了 Module....Nodejs 引入模块加载顺序和基本步骤 1、加载顺序和速度: require 函数接收到模块标识符时,会优先检查内存中是否已经有缓存模块对象,有的话直接返回,没有就继续查找。...Nodejs 在拿到模块标识符之后,会进行路径分析,获得了入口文件绝对路径之后就会去内存检索,如果内存中没有缓存的话就会进入下一步,进行文件定位。

1.6K21

CommonJS

崭露头角,它将web从网页时代带进了应用时代,并且在ES标准中出现了更多、更强大api,在浏览器中也出现了更多、更强大api供js调用,这需要感谢各大浏览器厂商对规范大力支持,然而,浏览器更新迭代和...开头相对路径或者绝对路径,它可以没有文件名后缀.js 模块定义十分简单,接口也十分简洁,它意义在于将累聚方法或者变量限定在私有的作用域用,同时支持引入和导出功能以顺畅衔接不同模块(文件),每个模块具有独立空间...NodeJS模块实现 尽管规范中exports、require和module听起来十分简单,但是NodeJS在实现它过程中究竟经历了什么,这个过程需要知晓: 在NodeJS中引入模块需要经历如下三个步骤...接下来,我们详细分析一下模块加载过程: 优先从缓存加载 在此之前,我们需要知晓一点是,与浏览器会缓存静态文件从而提高性能一样,NodeJS也会对引入过模块进行缓存,以减少二次引入时开销。...文件定位 从缓存加载优化策略使得二次引人时不需要路径分析、文件定位和编译执行过程,大大提高了再次加载模块效率。

16410

window安装node.js和docsify安装

/download/ 下载完成,选择安装路径一直下一步就行了 新版 nodejs 自带 npm ,所以无需重新安装npm,安装结束,在 cmd 输入 node -v 和 npm -v 即可显示安装成功...: 二、环境变量配置 1、在安装目录新增两个文件夹 说明:这里环境配置主要配置是npm安装全局模块所在路径,以及缓存cache路径,之所以要配置,是因为以后在执行类似:npm install...例如:我希望将全模块所在路径和缓存路径放在我node.js安装文件夹中,则在我安装文件夹【D:\软件\nodejs】下创建两个文件夹【node_global】及【node_cache】如下图: 用来存放模块缓存...】,将【用户变量】下【Path】修改为【D:\软件\nodejs\node_global】 别忘了系统变量里path也要配置: 配置完,安装个module测试下,我们就安装最常用express.../README.md 就能更新网站内容。

2.5K20

温故而知新,重温 Node.js

n 对全局模块毫无作为,因此有可能在切换了 node 版本发生全局模块执行出错问题;nvm 全局模块存在于各自版本沙箱中,切换版本需要重新安装,不同版本间也不存在任何冲突。...npm 常用命令 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls 查看安装模块 npm...简单表达式运算 使用变量 多行表达式 下划线(_)变量 REPL命令 语法 官网文档很全,不需要多说什么 http://nodejs.cn/api/ 全局对象 JavaScript 中有一个特殊对象...模块一旦被加载以后,就会被系统缓存。如果第二次加载该模块,则会返回缓存版本,这意味着模块实际上只会执行一次。如果希望模块执行多次,则可以让模块返回一个函数,然后多次调用。...文件操作(fs) 让前端觉得如获神器不是NodeJS能做网络编程,而是NodeJS能够操作文件。小至文件查找,大至代码编译,几乎没有一个前端工具不操作文件。

1K10

Node.js安装

下载 下载完解压并指定安装目录,进行安装 安装完成后进行验证 node -v npm -v 修改全局模块下载路径 希望将全模块所在路径和缓存路径放在我node.js安装文件夹中,则在我安装文件夹D...config set cache "D:\software\tools\node\node_cache" npm root -g #查看npm全局下载本地目录 修改系统环境变量 将【用户变量】下Path...\node\node_global,之后点击确定 经过上面的步骤,nodejs下载模块就会自动下载到我们自定义目录,接下来我们测试一下。...输入下面的命令: npm install express -g -g是全局安装意思,不加 -g 就是默认下载到当前目录 普通cmd执行没有权限 是由于权限原因,右击Nodejs文件夹->属性->安全...,点击编辑,将所有权限都✔ 在node_global右击查看删除是否需要管理员权限,如果还需要把node_modules node_global删除重建 更换npm源为淘宝镜像 npm config

1.8K20

nodejs安装

node -v 不可行 咨询旁边前端开发简述:windows最好安装.msi类型 傻瓜式安装,msi自动配置环境变量;而zip类型则是开发者有更多自定义配置需要植入(高手操作) ?...安装完毕我们来验证一下nodejs安装是否成功执行如下命令,我们可以看到返回对应版本12.9.1安装成功 node -v ? nodejs对应初始化目录,持续更新(版本升级) ?...:这里环境配置主要配置是npm安装全局模块所在路径,以及缓存cache路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global...例如:我希望将全模块所在路径和缓存路径放在我node.js安装文件夹中,则在我安装文件夹【D:\Develop\nodejs】下创建两个文件夹【node_global】及【node_cache】如下图...五.程序测试 配置完,安装个module测试下,我们就安装最常用express模块,打开cmd窗口, 输入如下命令进行模块全局安装: ?

2.4K10

基于nodejs线上代码热部署原理与实现

bad gateway 近段时间在做线上服务编译相关需求时候,就出现了短时间内线上服务代码高频变动,代码功能模块高频更新,在不能重启服务情况下,让更新代码生效场景。...= require.resolve(path.join(hotsPath, filename)); // 当你适应require加载一个模块模块数据就会缓存到require.cache中,...require.cache缓存 require.cache[targetFile] = null; // 重新加载发生变动模块文件,实现热加载部署效果,并将重新加载结果,更新到...("热部署文件:", filename, ",执行结果:", handlerMap); }); }; watchHandlers函数是用来监听指定文件夹下文件变动、清理缓存更新缓存。...原文件缓存,清除缓存用require.cache[targetFile] = null; 坑爹地方来了,仅仅只是将缓存置为null,会发生内存泄露,我们还需要清除缓存父级引用require.cache

1.2K20

nodejs探秘:require加载模块原理及代码实现

最近因为项目需要使用nodejs,因此不得不对其进行学习研究。一番深入发现,nodejs除了好用,作为后台效率非常高之外,它自身设计堪称精妙。...在nodejs开发中我们会使用require将很多功能模块加载到应用中,假设我们需要使用它文件系统进行本地文件读写,那么我们需要使用如下语句先加载fs模块: require('fs') fs.writeFile.../开头,那么就是Nodejs核心模块nodejs将在其核心模块目录下查找 3,如果第2步找不到,那么现在当前目录下查找是否存在node_module目录,如果有则进去查找 ,如果没有则回到上一级目录...代码还需要注意是,require采用了缓存功能,如果给定模块已经加载过了它就直接返回,这意味着无论模块在代码中被加载多少次,它实际上只加载了一次,以后每次遇到要requier它时候,nodejs都会从缓存中直接将其返回.../a.js’),在执行时首先会把a.js对应module对象进行缓存,对应语句如下: my_require.cache[id] = module 这个缓存是代码没有产生死循环原因。

85310

彻底搞懂 Node.js 中 Require 机制(源码分析到手写实践)

什么是 CommonJS 每一个文件就是一个模块,拥有自己独立作用域,变量,以及方法等,对其他模块都不可见。CommonJS 规范规定,每个模块内部,module 变量代表当前模块。...去加载 node 原生模块 如果没有进行缓存过,会调用一个加载原生模块函数,这里分析一下。...Nodejs 为了提高效率,把原生 js 模块源码字符串直接转成 ascii 码存到**内存**里。这样加载这些模块时候,就不需要硬盘 io 了。直接从内存读取就行。...7. module.load 真正去加载代码 不在缓存,不是原生模块缓存已经添加完,我们通过这个 load 函数去加载文件模块,源码中位置(https://github.com/nodejs/node...100 999 加载方式 同步加载,运行时动态加载,加载是一个对象,对象需要在脚本运行完成才会生成 异步加载,静态编译,ES6 模块不是对象,它对外接口只是一种静态定义,在代码静态解析阶段就会生成

2.8K21

前端包管理工具与配置项

将所有第三方依赖包放在 node_modules 这个文件目录下,我们在增加,删除,升级依赖也只是更新这个文件下相关依赖包。...: devDependencies 是本地开发时用依赖项 dependencies 是生产环境依赖项 卸载模块 $ npm uninstall express 卸载,你可以到 /node_modules...文件夹下(没有的改文件夹会新建一个) 只安装生产依赖 npm install --production 查看全局安装模块 npm list -g 如果要查看某个模块版本号,可以使用命令如下 npm...当代码变更时,版本号按以下原则更新。 注意 如果只是修复bug,需要更新Z位。 如果是新增了功能,但是向下兼容,需要更新Y位。 如果有大变动,向下不兼容,需要更新X位。...module:是以 ES Module(也就是 ES6)模块化方式进行加载,因为早期没有 ES6 模块化方案时,都是遵循CommonJS 规范,而 CommonJS 规范包是以 main 方式表示入口文件

40910

新设备如何使用hexo博客

前言 我们知道,使用 Github+hexo 搭建一个个人博客确实需要花不少时间,我们搭好博客使用挺好,但是换一个电脑如何维护我们博客呢?我们怎么使用 hexo 再发布文章到个人博客呢?...在新设备上安装node JS修改全局安装和缓存路径 #这里修改成nodeJS目录 npm config set prefix "E:\nodejs" --nodejs会自动寻找该路径下 node_modules...文件夹为实际存放全局模块路径,这也是为啥叫prefix不叫global原因;以 安装全局模块都会被放到D:\Program Files\nodejs\node_modules下,跟npm模块在...如果这里报错,添加系统变量path内容。 因为cnpm会被安装到D:\Program Files\nodejs\node_global下,而系统变量path并未包含该路径。...2.本地测试完成hexo d推送到远端服务器失败问题。 原因 ​ 远端服务器需要识别git推送个人信息,由name和email组成,我们需要配置本地git信息。

59040

CommonJs和es6Module区别

历史上,js一直没有模块(module)体系,无法将一个项目拆分成多个模块文件。 正对这一情况,社区出现了一些统一规范:CommonJs和AMD,前者是针对服务端js,也就是nodejs。...nodejs目前主流还是采用CommonJS规范。 不过在v13.2版本,nodejs已经实现了ES6模块语法,还未正式替换,在考察阶段。...4. commonjs导出是一个值拷贝,会对加载结果进行缓存,一旦内部再修改这个值,则不会同步到外部。ES6是导出一个引用,内部修改可以同步到外部。 5....两者循环导入实现原理不同,commonjs是当模块遇到循环加载时,返回是当前已经执行部分值,而不是代码全部执行值,两者可能会有差异。所以,输入变量时候,必须非常小心。...ES6 模块是动态引用,如果使用import从一个模块加载变量(即import foo from 'foo'),那些变量不会被缓存,而是成为一个指向被加载模块引用,需要开发者自己保证,真正取值时候能够取到值

62520

如何部署 Node.js 开发环境

输入以下命令更新本地软件包: sudo apt update 从存储库安装Node.js: sudo apt install nodejs 如果存储库中软件包满足您需求,那么您需要就是使用Node.js...nodesource_setup.sh PPA将添加到您配置中,您本地包缓存将自动更新。...从Nodesource运行安装脚本,您可以像上面一样安装Node.js包: sudo apt install nodejs 要检查在这些初始步骤之后安装了哪个版本Node.js,请输入: nodejs...要删除发行版本,您需要apt在系统级别使用该实用程序。 要删除发行版本,请输入以下内容: sudo apt remove nodejs 此命令将删除程序包并保留配置文件。...如果要删除版本是当前活动版本,则必须先停用nvm: nvm deactivate 您现在可以使用上面的uninstall命令卸载当前版本,该命令将删除与目标版本Node.js相关联所有文件,但可用于重新安装缓存文件不会被删除

3.5K67

Node.js学习笔记(二)——Node.js模块化、文件读写、环境变量

JavaScript在早期设计中就没有模块、包、类概念,开发者需要模拟出类似的功能,来隔离、组织复杂JavaScript代码,我们称为模块化。...根据这个规范 (1)、每一个文件就是一个模块,其内部定义变量是属于这个模块,不会对外暴露,也就是说不会污染全局变量。 (2)、导入自定义模块时路径需要以./或../开始,同一路径下也不能省略。...如下图所示: 从文件模块缓存中加载 尽管原生模块与文件模块优先级不同,但是都不会优先于从文件模块缓存中加载已经存在模块。 从原生模块加载 原生模块优先级仅次于文件模块缓存优先级。...原生模块也有一个缓存区,同样也是优先从缓存区加载。如果缓存没有被加载过,则调用原生模块加载方式进行加载和执行。...b在系统中已定义好 注意当前终端是cmd,不是powershell  这里a输出123原因是修改成888没有重启电脑。

6K30

npm——安装教程、安装vue脚手架(ASP.NET Core微服务(五)——【vue脚手架解析接口】过度章节)

再看看另外2个目录,npm本地仓库跑在系统盘c盘用户目录了(没见到npm-cache是因为没有用过,一使用缓存目录就生成了),我们试图把这2个目录移动回到D:\nodejs 先如下图建立2个目录...更新npm:【npm install npm -g】 【-g】装到【global下】,就是刚才自己创建文件夹。...注意,此时,默认模块D:\nodejs\node_modules 目录 将会改变为D:\nodejs\node_global\node_modules 目录。...我们需要做1件事情: 1、增加环境变量NODE_PATH 内容是:D:\nodejs\node_global\node_modules (注意,一下操作需要重新打开CMD让上面的环境变量生效) 一、测试...-g 三、安装vue脚手架 运行npm install vue-cli -g  由于没有设置环境变量,无法使用。

51820

opencv cmake编译 && nodejs

不过nodejs中使用目录结构是opencv bin安装包目录结构,所以通过cmake编译出来vc项目默认是有调和发布目录需要根据nodejs opencv源码readme.md中描述,设置相应环境变量和目录结构...如果出现STDDEF.H找不到,说明VC环境变量未添加,需要运行VC环境下vcvarsall.bat,在使用NPM安装 如果node-gyp目录中build.js错误,需要配置环境变量GYP_MSVS_VERSION...需要安装c ++版本opecv在目录build下配置环境变量OPENCV_DIR并添加路径路径%OPENCV_DIR \ bin% nodejs淘宝镜像安装:( - g全局安装(node_module...下npm目录npmrc配置前缀和缓存),否则本地安装,下载文件到cmd启动目录) node_module中大部分源码都有typescript定义 nodejs项目和网页js不同,nodejs...可以方便发布自己模块,使用开源模块,由于模块众多,vscode开发使用时候install,可以方便查看module源码,了解其功能。

2.5K20
领券