babel

Why does Async Await work with React setState?

折月煮酒 提交于 2019-11-28 17:22:13
问题 I have been using async await with babel in my ReactJS project. I discovered a convenient use with React setState that I would just like to understand better. Consider this code: handleChange = (e) => { this.setState({[e.target.name]: e.target.value}) console.log('synchronous code') } changeAndValidate = async (e) => { await this.handleChange(e) console.log('asynchronous validation code') } componentDidUpdate() { console.log('updated component') } My intention was for the asynchronous

React入门一

十年热恋 提交于 2019-11-28 15:39:09
React.js算是当今主流框架之一了,好多公司项目都是React。直接上图: 所以最近整合一些论坛,今儿咱就说说React, React 是一个用于构建用户界面的 JAVASCRIPT 库。 React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。 React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。<摘自菜鸟教程> 恩,背景和价值都了解了,咱看看怎么安装它, React 可以直接下载使用,可以在官网 http://facebook.github.io/react/ 下载最新版。 你也可以直接使用 BootCDN 的 React CDN 库,地址如下: <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"><

使用`html-webpack-plugin`插件配置启动页面

*爱你&永不变心* 提交于 2019-11-28 15:26:19
由于使用`--contentBase`指令的过程比较繁琐,需要指定启动的目录,同时还需要修改index.html中script标签的src属性,所以推荐大家使用`html-webpack-plugin`插件配置启动页面. 1. 运行`cnpm i html-webpack-plugin --save-dev`安装到开发依赖 2. 修改`webpack.config.js`配置文件如下: ``` // 导入处理路径的模块 var path = require('path'); // 导入自动生成HTMl文件的插件 var htmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { entry: path.join(__dirname, 'src/js/main.js'), // 项目入口文件 output: { // 配置输出选项 path: path.join(__dirname, 'dist'), // 配置输出的路径 filename: 'bundle.js' // 配置输出的文件名 }, plugins:[ // 添加plugins节点配置插件 new htmlWebpackPlugin({ template:path.join(__dirname, 'src/index.html'),/

vue-cli3 按需引入element-ui

余生颓废 提交于 2019-11-28 15:09:05
按照官网的教程:按需引入需要借助: babel-plugin-component 安装: babel-plugin-component 注意:官网是修改 .babelrc 文件,我这里为了方便就直接修改 babel.config.js 文件了 对应的项目根目录下的 babel.config.js 需要修改成为以下:【我是直接拷贝官网的】 在 main.js 里面按需引入: import { Button } from ‘element-ui’; Vue.component(Button.name, Button 启动项目报错: .plugins[0][1] must be an object, false, or undefined 原因是: babel.config.js 里面的plugins多了一个中括号:修改如下: 再次重新启动后又报错: Cannot find module ‘babel-preset-es2015’ from ' 这个是由于babel编译插件版本问题,需要安装最新的 babel 编译插件 “ @babel/preset-env ” ,执行以下安装命令: npm install @babel/preset-env -D 修改 babel.config.js 为: 再次重新启动,终于可以了: 如果觉得能解决您的问题或者 觉得 不错的话可以 点个赞 哦! ———

前端利器躬行记(2)——Babel

夙愿已清 提交于 2019-11-28 14:49:51
  Babel是一个JavaScript编译器,不仅能将当前运行环境不支持的JavaScript语法(例如ES6、ES7等)编译成向下兼容的可用语法(例如ES3或ES5),这其中会涉及新语法的转换和缺失特性的修补;还支持语法扩展,从而能随时随地的使用JSX、TypeScript等语法。目前最新版本是7.4,自从6.0以来,Babel被分解的更加模块化,各种转译功能都以插件的形式分离出来,可按自己的需求,灵活配置。   在7.0版本中,对Babel的包做了一次大调整,统一改成域级包,将原先以“babel-”为前缀的包迁移到@babel的命名空间,例如@babel/core、@babel/cli等。这种模块化的设计,既能区分是否是官方发布的,也能避免命名冲突。 一、@babel/core   如果要以编程的方式使用Babel,那么可以通过@babel/core实现,安装命令如下所示。 npm install --save-dev @babel/core   在引入该包后,就能在JavaScript文件中直接编译代码、文件或AST。以编译代码为例,可选择的方法有三个,如下所示。 var babel = require("@babel/core"); babel.transform(code, options, function(err, result) { console.log

ReactJS: webpack: Failed to compile with spread syntax

此生再无相见时 提交于 2019-11-28 14:31:54
I want to show you my problem. My env: Node: 8.9.1 npm: 5.6.0 yarn: 1.3.2 package.json "devDependencies": { "babel-core": "^6.26.0", "babel-loader": "^7.1.2", "babel-plugin-transform-object-rest-spread": "^6.26.0", "babel-preset-env": "^1.6.1", "babel-preset-react": "^6.24.1", "copy-webpack-plugin": "^4.1.1", ... "webpack": "^3.7.1", "webpack-dev-server": "^2.9.2" }, webpack.config.js ... module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { cacheDirectory: true, presets: ['react', 'env'] } } }, ... It always compile failed like this

webpack/前端工程化

左心房为你撑大大i 提交于 2019-11-28 13:26:23
1.模块化的分类 A.浏览器端的模块化 ​ 1).AMD(Asynchronous Module Definition,异步模块定义) ​ 代表产品为:Require.js ​ 2).CMD(Common Module Definition,通用模块定义) ​ 代表产品为:Sea.js B.服务器端的模块化 ​ 服务器端的模块化规范是使用CommonJS规范: ​ 1).使用require引入其他模块或者包 ​ 2).使用exports或者module.exports导出模块成员 ​ 3).一个文件就是一个模块,都拥有独立的作用域 C.ES6模块化 ​ ES6模块化规范中定义: ​ 1).每一个js文件都是独立的模块 ​ 2).导入模块成员使用import关键字 ​ 3).暴露模块成员使用export关键字 小结:推荐使用ES6模块化,因为AMD,CMD局限使用与浏览器端,而CommonJS在服务器端使用。 ​ ES6模块化是浏览器端和服务器端通用的规范. 2.在NodeJS中安装babel A.安装babel ​ 打开终端,输入命令: npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node ​ 安装完毕之后,再次输入命令安装: npm install --save @babel

Using babel to transpile to es3 (safari compliant)

独自空忆成欢 提交于 2019-11-28 12:39:06
I am new to babel. I set it up like this: .babelrc: { "presets": ["es2015", "es2017"] } gulpfile: gulp.task('default', function() { return gulp.src(['src/**/*.js', '!src/**/3rd/*']) .pipe(babel()) .pipe(gulp.dest('dist')); }); However this seems to be compiling to es5 which is not fully supported in Safari. Is there a way to set target? So it can compile to ES3? No, Babel does not support transpiling to ES3. Your options are: Compile to ES5 and then use ES5 shim . Use a different transpiler. Google Closure Compiler and TypeScript both support ES6 as input and ES3 as output. Note: The "ES5"

Module not found: Error: Cannot resolve module 'fs'

守給你的承諾、 提交于 2019-11-28 11:50:37
I'm making a react app using Babel and Webpack and I want to use the file-exists package from npm. I already installed and saved the package as a dependency for my project. After running npm start I get this error: ERROR in ./~/file-exists/index.js Module not found: Error: Cannot resolve module 'fs' in C:\GitHub\CryptoPrices\node_modules\file-exists @ ./~/file-exists/index.js 3:9-22 file-exists uses fs as a dependency but for some reason it is not working. Npm starts and runs without any issues if I don't require file-exists anywhere. here is my webpack config file: module.exports = { entry: [

日常填坑--gulp build出错 error: Requires Babel \"^7.0.0-0\", but was loaded with \"6.26.3\". 以及js压缩错误

有些话、适合烂在心里 提交于 2019-11-28 10:34:27
1、想通过babel-node让后端node可以运行es6,结果装完babel-cli总是报错Requires Babel "^7.0.0-0", but was loaded with "6.26.3"yarn add @babel/cli @babel/core @babel/node @babel/preset-env -D 参考链接 https://segmentfault.com/q/1010000017876791/ 要看具体的版本号,可以去 package-lock.json, 或者如果你用了yarn,那就去 yarn-lock.json 中找。 package-lock.json和package.json的区别参考一下链接 https://www.jianshu.com/p/818833b2dd5a网上所有的方法都尝试一下遍,以上并没有解决这个问题直到我看到这篇文章:https://blog.csdn.net/wiki_Wei/article/details/90271435把作者的包复制过来,重新删除安装,以上的错误没有报错但是报了js压缩的的错误 "devDependencies": { "babel-core": "^6.26.3", "babel-preset-env": "^1.7.0", "babel-preset-es2015": "^6.24.1",