Webpack

新手 如何搭建一个vue项目详解

走远了吗. 提交于 2020-11-27 04:33:26
搭建一个vue项目 刚开始作为新手,对于刚接触vue的我也是一脸懵 ,因此写下此篇搭建vue 1.第一步我们需要安装node环境 1.我们可以先去下载安装包,下载地址为: https://nodejs.org/en/ 或 https://nodejs.org/zh-cn 2.下载完成后直接打开,进行傻瓜式安装即可。 双击直接进行下一步 下一步 一直点下一步,直到安装成功,在此不再赘述。 3. 安装成功之后,可以进行进行检查,打开cmd,输入node -v 4.node安装同时会安装npm,可以进行检查,打开cmd,输入npm -v 2.第二步我们需要搭建vue环境 1、全局安装vue-cli脚手架,利用命令 npm install --global vue-cli 2.通过cd 命令进入你的项目目录 3.新建vue项目,利用命令vue init webpack 项目名 注: Project name 输入项目名称 Project description 项目描述一般没有的话直接回车 Author 作者 Vue build 打包方式,回车即可;      Install vue-router 是否要安装 vue-router,项目中肯定要使用到 所以Y 回车;      Use ESLint to lint your code 是否需要 js 语法检测 目前我们不需要 所以 n 回车

深入浅出TypeScript(2)- 用TypeScript创建web项目

青春壹個敷衍的年華 提交于 2020-11-26 04:06:18
前言 在 第一篇 中,我们简单介绍了TypeScript的一些简单语法,那么如果我们只是简单使用TypeScript开发一个web项目,应该做哪些准备?接下来我们就结合TypeScript和Webpack来创建一个基于TypeScript的Web应用程序。 准备工作 为了创建第一个Web应用,我们先做一些基本的准备工作,需要安装以下依赖: webpack webpack-cli webpack-dev-server webpack-merge html-webpack-plugin clean-webpack-plugin typescript ts-loader jest & @types/jest    创建项目 新建文件夹ts-init,npm init -y初始化package.json文件。 之后,我们依次安装上述依赖到项目中,以下是安装之后的package.json文件: { "name": "ts-init", "version": "1.0.0", "description": "", "main": "./src/index.ts", // 设置入口文件 "scripts": { "start": "webpack-dev-server --mode=development --config ./build/webpack.config.js", //设置启动命令

私藏已久的前端性能优化技巧大全送你!

馋奶兔 提交于 2020-11-26 02:04:17
随着互联网的迅猛发展,前端发展也进入了一个新时期,每年都会涌现大量的新技术,让人目不暇接。 不管前端技术如何变化,前端性能优化始终都在一个非常重要的位置上,因为性能优化决定着用户体验。 同时性能优化是大厂面试的必考内容。 如果大家以后想要进入大厂工作, 那么性能优化是你必须迈过的一道门槛。 因此, 掌握前端性能优化变得刻不容缓 。 慕课网的 《你不知道的前端性能优化技巧》 这本专栏一定能为你指路,原价 48 元,现在 免费 领取! 本专栏面向各个层级的前端开发者,不必担心专栏内容难以理解 。 即便你是完全没有接触性能优化的新同学,也能够轻松掌握相关知识与技能。 如何免费领取? 微信扫描下方二维码 参与活动即可免费领取 划重点:领取后可永久阅读 福利不止一个, 免费送专栏的同时, 另赠5本前端图书(包邮)!! (本书由博文视点提供) 注: 此次活动不强制,若不参与邀请免费活动,送你 15元优惠码 : qdyh723 ,在支付时输入此优惠码,即可享受到手价 33元 >> 长按识别二维码进入课程 这是一门怎样的专栏? 本专栏并不局限于某个具体方法的讲解,而是以通俗易懂的语言风格、便于理解的课程示例去介绍 前端性能优化的方方面面 ,从原理详解到项目实战,重点培养大家性能优化的思维与方法。 为了确保所学的内容能够实际运用于自己的日常工作中,专栏所讲解都是一些基础的知识和优化方法

字节跳动 前端校招 一二三面+hr面

霸气de小男生 提交于 2020-11-25 05:28:12
https://juejin.im/post/5e61136ee51d4527196d6019 tip: 一二三面连着面的,中间有10分钟休息时间,面试官都很和善的,不会给太大的压力,不过字节的每一个问题都会问的很深,很深。。。感觉到了跟大佬的差距O(∩_∩)O😄 一面 (视频面 1小时35分钟) 20年3月1日 自我介绍 vue和react有什么区别,更喜欢用哪个,为什么 react hook熟悉吗,解决了什么问题,用react hook写一个用户鉴权的组件,所有其他组件都要经过它验证(auth是一个promise) 为什么请求放在useEffect里,放在外面和放里面有什么区别?在useEffect里想使用async/await怎么用 谈了谈useLayoutEffect和useEffect具体执行时机 算法,一个树结构,有id和一个子节点数组,要求在所有子节点上增加一个属性为父节点的parentId async/await和promise性能差异, 我提到了堆栈追踪,在本人发表的其他文章里有写到 react写一个时间选择组件,先设计要传什么样的props接口,说明原因,外部组件如何使用(其实就是考封装组件库), 如果是手机端的,无线滚动的效果具体如何实现 CommonJS和ES6模块化有什么区别,设计一个方法,让CommonJS导出的模块也能改变其内部变量 webpack

webpack + babel - transpile object arrow functions doesn't work

核能气质少年 提交于 2020-11-25 03:43:31
问题 I'm trying to configure webpack (5) with babel, using babel-loader to transpile to ES5. Unfortunately, the output is not consistent. Basically, it's divided into two parts: Some polyfills: My code: As you can see, the first part contains arrow functions, and the second one not. I've tried to add @babel/plugin-proposal-class-properties and @babel/plugin-transform-arrow-functions to my .babelrc file, but the class-properties is missing (with debug enabled). I must admit, I'm not sure that the

webpack + babel - transpile object arrow functions doesn't work

梦想的初衷 提交于 2020-11-25 03:42:04
问题 I'm trying to configure webpack (5) with babel, using babel-loader to transpile to ES5. Unfortunately, the output is not consistent. Basically, it's divided into two parts: Some polyfills: My code: As you can see, the first part contains arrow functions, and the second one not. I've tried to add @babel/plugin-proposal-class-properties and @babel/plugin-transform-arrow-functions to my .babelrc file, but the class-properties is missing (with debug enabled). I must admit, I'm not sure that the

Javascript混淆与解混淆的那些事儿

被刻印的时光 ゝ 提交于 2020-11-24 03:36:20
像软件加密与解密一样,javascript的混淆与解混淆同属于同一个范畴。道高一尺,魔高一丈。没有永恒的黑,也没有永恒的白。一切都是资本市场驱动行为,现在都流行你能为人解决什么问题,这个概念。那么市场究竟能容纳多少个能解决这种问题的利益者。JS没有秘密。 其实本人不赞成javascript进行hash混淆处理,一拖慢运行时速度,二体积大。JS代码前端可获取,天生赋予“开源”属性,都可以在chrome devTools下查看。JS非压缩性混淆完全违法前端优化准则。 目前网络上可以搜索的JS混淆工具不外乎以下几种: eval混淆 ,也是最早JS出现的混淆加密,据说第一天就被破解,修改一下代码,alert一下就可以破解了。这种方法从出生的那天就失去了意义。其实JS加密(混淆)是相对于可读性而言的,其实真正有意义的就是压缩型混淆uglify这一类,即可减少体重,也可减少可读性。 但是,也不能排除部分商业源代码使用hash类型混淆源代码,比如 miniui 使用的 JSA加密 , fundebug使用的 javascript-obfuscator 。 下面通过代码来说明 JSA加密 和 javascript-obfuscator 的区别: 要混淆的代码: function logG(message) { console.log('\x1b[32m%s\x1b[0m', message); }

如何科学修改 node_modules 里的文件(同事看了直呼内行)

喜欢而已 提交于 2020-11-24 03:30:27
作者:沉末_ 原文:https://juejin.im/post/5d25b39bf265da1bb67a4176 前言 有时候使用 npm 上的包,发现有 bug ,我们知道如何修改,但是别人可能一时半会没法更新,或者是我们特殊需求,别人不愿意修改,这时候我们只能自己动手丰衣足食。那么我们应该如何修改别人的源码呢?首先,直接修改 node_modules 里面的文件是不太行的,重新安装依赖就没有了。一般常用办法有两个: 下载别人代码到本地,放在 src 目录,修改后手动引入。 fork 别人的代码到自己仓库,修改后,从自己仓库安装这个插件。 这两个办法的缺陷就是:更新麻烦,我们每次都需要手动去更新代码,无法与插件同步更新。如果我们要修改的代码仅仅是别人的一个小模块,其他大部分代码都不动,这时候有一个很投机的操作:利用 webpack alias 来覆盖别人代码。 webpack alias 的作用 webpack alias 一般用来配置路径别名,使我们可以少写路径代码: chainWebpack: config => { config.resolve.alias .set( '@' , resolve( 'src' )) .set( '#' , resolve( 'src/views/page1' )) .set( '&' , resolve( 'src/views/page2

【编程鹿】害 学element-ui 看这篇就够了

和自甴很熟 提交于 2020-11-23 19:38:13
环境搭建 npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用。 npm i element-ui -S CDN 目前可以通过 unpkg.com/element-ui 获取到最新版本的资源,在页面上引入 js 和 css 文件即可开始使用。 <!-- 引入样式 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> <!-- 引入组件库 --> <script src="https://unpkg.com/element-ui/lib/index.js"></script> 我们建议使用 CDN 引入 Element 的用户在链接地址上锁定版本,以免将来 Element 升级时受到非兼容性更新的影响。 Hello world 通过 CDN 的方式我们可以很容易地使用 Element 写出一个 Hello world 页面。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- import CSS --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk

前端项目架构分析

非 Y 不嫁゛ 提交于 2020-11-23 08:19:13
一 目录结构 ├── build // 构建相关 ├── config // 配置相关 ├── src // 源代码 │ ├── api // 所有请求 │ ├── assets // 主题 字体等静态资源 │ ├── components // 全局公用组件 │ ├── directive // 全局指令 │ ├── filtres // 全局 filter │ ├── icons // 项目所有 svg icons │ ├── lang // 国际化 language │ ├── mock // 项目mock 模拟数据 │ ├── router // 路由 │ ├── store // 全局 store管理 │ ├── styles // 全局样式 │ ├── utils // 全局公用方法 │ ├── vendor // 公用vendor │ ├── views // view │ ├── App.vue // 入口页面 │ ├── main.js // 入口 加载组件 初始化等 │ └── permission.js // 权限管理 ├── static // 第三方不打包资源 │ └── Tinymce // 富文本 ├── .babelrc // babel-loader 配置 ├── .eslintrc.js // eslint 配置项 ├── .gitignore