问题一:我是使用webpack打包的为什么我的react模块放在node_modules中也只需要写成import React from 'react';就可以在另一个文件夹里引入react了?我并没有看到哪里设置了路径给react阿
问题2:我想问一下用webpack的时候使用import和export,是相当于使用ES6的呢?还是node里的内置对象呢?
欢迎选择我的课程,让我们一起见证您的进步~~
答问一:你写了import React from 'react';,webpack会优先看看你有没有在resolve.alias里看看你有没有定义react,如果没有的话,就在node_modules里找。
import React from 'react';
resolve.alias
react
node_modules
答问二:这import和export都是ES6的语法,并不是什么内置对象,你看webpack1就不支持这import/export的语法,需要用babel转换成commonjs的写法require。
require
问题一:nodejs的模块加载机制决定的,你可以看下官方文档,如果你对NODE不熟悉那就没办法了。问题二:ES6和NODE内置对象不冲突,node依托V8平台,所以ES6的语法支持与否去决定于V8平台,而V8目前对ES6是部分支持的了。不过由于react是需要跑在浏览器端的,为了保证浏览器的兼容,所以一般需要babel去翻译成标准的ES5语法,这时其实和node本身没有绝对关系,而是为了兼容不同版本的浏览器。
答问一:你写了
import React from 'react';
,webpack会优先看看你有没有在resolve.alias
里看看你有没有定义react
,如果没有的话,就在node_modules
里找。答问二:这import和export都是ES6的语法,并不是什么内置对象,你看webpack1就不支持这import/export的语法,需要用babel转换成commonjs的写法
require
。问题一:nodejs的模块加载机制决定的,你可以看下官方文档,如果你对NODE不熟悉那就没办法了。
问题二:ES6和NODE内置对象不冲突,node依托V8平台,所以ES6的语法支持与否去决定于V8平台,而V8目前对ES6是部分支持的了。
不过由于react是需要跑在浏览器端的,为了保证浏览器的兼容,所以一般需要babel去翻译成标准的ES5语法,这时其实和node本身没有绝对关系,而是为了兼容不同版本的浏览器。