移动手机版要求我们在制作嵌入h5的时候去适配不同的手机.适配有多重模式,有flex.百分比等.字体大小的控制也有px.百分比.rem等单位,webpack中 px转rem. vue项目中postcss-pxtorem的使用及webpack中的配置 css中单位px和em,rem的区别 1 安装依赖包   npm install postcss-pxtorem --save-dev 2 创建 .postcss.js文件,做webpack相关配置 配置项 autoprefixer: 添加浏览器前缀…
代码分割本身和 webpack 没有什么关系,但是由于使用 webpack 可以非常轻松地实现代码分割,所以提到代码分割首先就会想到使用 webopack 实现. 在 webpack 中是使用 SplitChunksPlugin来实现的,由于 SplitChunksPlugin 配置参数众多,接下来就来梳理一下这些配置参数. 官网上的默认配置参数如下: module.exports = { //... optimization: { splitChunks: { chunks: 'async',…
引言网上看到一篇关于 ctrl+鼠标左键无法识别别名路径的问题,最后有人回复的方法只能在ts项目中可以识别 https://segmentfault.com/q/1010000011911879 最后研究了下,发现可以配置解决 项目的webpack alias: { '@': require('path').resolve(__dirname, '../src') }, package.json文件要引入jest的配置,在moduleNameMapper配置"^@/(.*)": &qu…
注:用axios请求 1,下载axios npm i axios --save 2,在config文件下的index.js中配置代理地址 参考:https://vuejs-templates.github.io/webpack/proxy.html 举例:localhost:8080/api/xxx 代理到 http://192.168.10.183:8103/api/xxx,如果用pathRewrite重写则代理到http://192.168.10.183:8103/xxx 将'/api'转为…
好家伙, 当我们要各种两个文件去引用别的文件时,一般这么写 import msg from '../../msg.js' 那么如果文件藏得很深,'../'会变得很多,不美观,也不直观 所以我们又又又可以借助一个小工具"@" 在webpack.config.js文件中与("module"属性平级)属性添加配置如下: resolve:{ aliass:{ //告诉 webpack,程序员写的代码中,@符号表示 src 这一层目录 '@': path.join(__dir…
{test:/\.(eot|ttf|woff|woff2|svg)$/,loader:'file?name=fonts/[name].[ext]'} 将css中用到的字体全部提取存放到fonts目录下,fonts目录是相对output.path目录而言的…
在使用webpack的时候,你是不是被以下这种报错所困扰: 注意看 黄色框中标注的 You may need an appropriate loader to handle this file type. 此类问题多是没有安装并配置第三方loader导致的. -- 下面整理了webpack中配置的来龙去脉,对使用vue-cli有很大帮助 在网页中会引用哪些常见的静态资源? JS .js .jsx .coffee .ts(TypeScript 类 C# 语言) CSS .css .less .sa…
前言 前端工程化经历过很多优秀的工具,例如 Grunt.Gulp.webpack.rollup 等等,每种工具都有自己适用的场景,而现今应用最为广泛的当属 webpack 打包了,因此学习好 webpack 也成为一个优秀前端的必备技能. 由于 webpack 技术栈比较复杂,因此作者打算分两篇文章进行讲解: 基础应用篇:讲解各种基础配置: 高级应用篇:讲解 webpack 优化以及原理. [注] 本文是基于 webpack 4.x 版本 webpack 是什么 webpack 是模块打包工具.…
webpack - babel配置 babel是一个javascript编译器,是前端开发中的一个利器.它突破了浏览器实现es标准的限制,使我们在开发中可以使用最新的javascript语法. 通过构建和babel,可以使用最新js语法进行开发,最后自动编译成用于浏览器或node环境的代码. webpack中使用babel 配合webpack使用babel前,需要首先使用npm init初始化一个项目,npm install -g webpack安装webpack(全局安装是为了在命令行使用we…
webpack 安装 npm 初始化,控制台输入 npm init -y webpack 安装 npm i webpack webpack-cli -D 新建 webpack.config.js const path = require('path') module.exports = { mode: "development", entry:'./src/index.js', output:{ filename:'bundle.js', path:path.resolve(__dir…
一.安装 npm install --save-dev babel-loader babel-core babel-preset-env 二.在webpack.config.js中配置module 1 2 3 4 5 6 7 8 9 module: {   rules: [     {       test: /\.js$/,       exclude: /(node_modules|bower_components)/,       loader: 'babel-loader'     }…
Babel是一个javascript编译器,可以将ES6和更新的js语法转换成ES5的,使代码在较老的浏览器里也能正常运行. 一.安装 npm install --save-dev babel-loader babel-core babel-preset-env 二.在webpack.config.js中配置module module: { rules: [ { test: /\.js$/, exclude: /(node_modules|bower_components)/, loader:…
在webpack中,默认只能处理一部分ES6的新语法,一些更高级的ES6语法或者ES7语法, webpack是处理不了的:这时候,就需要借助于第三方的loader,来帮助webpack处理这些高级的语法, 当第三方loader把高级语法转为低级的语法之后,会把结果交给webpack去打包到bundle.js中. 通过Babel,可以帮我们将高级的语法转换为低级的语法 1.webpack中,可以运行如下两套 命令,安装两套包,去安装Babel相关的loader功能: 1.1第一套:cnpm i b…
1.Error: Cannot find module '@babel/core' babel-loader@8 requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babel-core'), you should install 'babel-loader@7'. npm install -D babel-loader @babel/core @babel/preset-env web…
版本 babel-loader version:"8.1.0" create-react-app:"3.4.1" 三个配置 第一部分: { test: /\.(js|mjs|jsx|ts|tsx)$/, include: paths.appSrc, loader: require.resolve('babel-loader'), options: { customize: require.resolve( 'babel-preset-react-app/webpac…
很偶然的今天想开个自己的小项目,记录一下最近项目工程上实现的一个小交互.按照之前运行非常流畅的配置走一遍,打包遇到各种坑.只好根据命令行的报错逐个排查,发现babel升级了一个大版本,已经到7.x了.看来每日沉迷项目,已经跟不上节奏了.这里记录一下遇到的问题以及解决方案. 1.webpack 4.x 插件 extract-text-webpack-plugin (node:2628) DeprecationWarning: Tapable.plugin is deprecated. Use ne…
index.js const arr = [ new Promise(()=>{}), new Promise(()=>{}) ]; arr.map(item => { console.log(item); }) index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="v…
Babel是什么 Babel是一个编译JavaScript的平台,它的强大之处表现在可以通过编译帮你达到: 使用下一代的javascript(ES6,ES7,--)代码,即使当前浏览器没有完成支持: 使用基于JavvScript进行扩展语言,比如React的JSX: webpack配置Babel 安装依赖包: npm install --save-dev babel-core babel-loader babel-preset-react babel-preset-env babel-core:…
参考:https://www.jianshu.com/p/9808f550c6a91. 安装依赖babel-loader: 负责 es6 语法转化babel-preset-env: 包含 es6.7 等版本的语法转化规则babel-polyfill: es6 内置方法和函数转化垫片babel-plugin-transform-runtime: 避免 polyfill 污染全局变量 cnpm install --save-dev babel-core babel-loader babel-plug…
今天在学习webpack的使用的时候,由于学习的教程是2018年初的,使用的是 webpack 3.x 和 babel 6.x ,然后学习的过程中出现的了很多问题. 解决问题之后,总结一下新的 babel 7.x 结合 webpack 4.x 配置 的正确方法 参考了官方文档:https://www.babeljs.cn/docs/setup/#installation 参考资料 升级指南 Upgrade to Babel 7 安装包 写 .babelrc 配置文件 配置 webpack 文件…
在使用ant-design-vue的包时样式是可以生效的但是如果我需要用到less文件时会报一个异常 当然这个异常其实很清晰的说明了什么问题看错误信息里面有issues地址,看来问题不止我们遇见了可以找到地址访问看看别人怎么说的我已经找出来了 https://github.com/ant-design/ant-motion/issues/44 根据上面链接反应出要解决此问题有两种方案 1.降低less版本到3.0以下(此办法不友好,不建议使用) 2.开启javascript,配置lessl-oa…
//这是main.js是我们项目的js入口文件 //1:a导入jQuery,引入jQuery包用$变量接收,此方法与node中 const $ = require('jquery') 同 //此为ES6中导入模块的方式 //由于ES6的语法太高级,浏览器解析不了次引入方式 import $ from 'jquery' import './css/index.scss' //class关键字,是ES6中提供的新语法,用来实现 ES6 中面向对象变成方法 class Person{ //使用stat…
babel配置 babel版本升级到8.x之后发现出现了很多问题.首先需要安装 "@babel/core": "^7.1.2", "@babel/plugin-transform-object-assign": "^7.0.0", "@babel/plugin-transform-runtime": "^7.1.0", "@babel/preset-env": &qu…
书接上文,接下来项目将引入babel支持ES6+语法兼容. Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中.中文官网 0x00.babel概念 Babel 是一个编译器(输入源码 => 输出编译后的代码).编译过程分为三个阶段:解析.转换和打印输出. Babel 本身不具有任何转化功能,它把转化的功能都分解到一个个plugin 里面.因此当我们不配置任何插件时,经过 b…
前面的文章说到了react 15的一些特性,众所周知react搭配es6或者叫es2015的开发模式更加的方便快捷.不过提到es2015这个毕竟没有被浏览器广泛支持的规范,要想能够快快乐乐的应用起来,就少不了将未来将要被浏览器支持但现在支持还不全面的规范转换成现有规范的工具了.这个好像选择不多,是的好像就是babel了,关于babel,本文不会去涉及它内部的实现原理.因为最近在兼容新的react的时候,不可避免的涉及到babel的更新,开始被那一串配置搞的头大,所以就认真的学习了一下,来跟大家分…
Webpack中sourcemap的配置 sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术.尤其是如今前端开发中大部分的代码都经过编译,打包等工程化转换.比如开发环境下用scss写样式, 想在浏览器中在线编辑css那样编辑scss就不是那么容易了.从我自己看过的资料中, sourcemap的概念最早出现在12年, jquer1.9是较早支持sourcemap的库.这篇博客比较有代表性:Introduction to JavaScript Sourc…
一.Babel:  (官网:https://www.babeljs.cn/docs/) 1.Babel 是一个 JavaScript 编译器: 2.Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中. 3. Babel的作用: ①.语法转换 ②.通过 Polyfill 方式在目标环境中添加缺失的特性 (通过 @babel/polyfill 模块) ③.源码转换 (codem…
在vue.js 框架搭建好后,其vue-cli 自动构建的目录里面相关环境变量及其基本变量配置,如下代码所示: module.exports = { build: { index: path.resolve(__dirname, '../dist/index.html'), assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: '/', productionS…
Babel 配置用法解析 刚复工的时候我司业务太多了,我已不记得我们连续作战了多少天,最近算是有时间可以学习学习我的babel大宝贝了,上周末看了下babel的一些核心模块以及babel的一些配置,今天继续以博客的形式记录总结下来. 写前面:babel默认是只会去转义js语法的,不会去转换新的API,比如像Promise.Generator.Symbol这种全局API对象,babel是不会去编译的.在我学会了babe配置l大法之后,看我一会儿怎么把这些新的API给它编译出来就完事儿了. 本文基于…
在日常的项目开发中,我们会用到各种第三方库来提高效率,但随之带来的问题就是打包后的vendor.js体积过大,导致加载时空白页时间过长,给用户的体验太差.为此我们需要减少vendor.js的体积,从本质上来解决这种问题. webpack的外部扩展(externals)可以有效的解决.externals 配置选项提供了「从输出的 bundle 中排除依赖」的方法.相反,所创建的 bundle 依赖于那些存在于用户环境(consumer's environment)中的依赖.防止将某些 import…