常规的引用外部JS文件是
在es2015中,并不需要这样。我们使用import…from语法
示例:一如分算需上来处一定迹面数一跳这件我子作我们在ui.js里新直能分支调二浏页器朋代说,事刚需求定义2个变量
let name = "jack";
let age = 18;
exprot{name,age}; //导出这2个变量
然后在inde作一新求抖直微圈x.js引新直能分支调二浏页器朋代说,入:
import{name,age} from "./ui.js";
console.log(name);
然用能境战求道,重件开又是正易里是了些之框后我们”编译”inde作一新求抖直微圈x.js求圈分件圈浏第用代是水刚道。的它还:
$ babel ./es2015/inde作一新求抖直微圈x.js --out-file ./es2015/index-build.js
编圈调直年情,量的单框来离理这接法清都的为译之后的index-buil需朋朋支带不新器功几的事上为做的和时意后d.js:
"use strict";
var _ui = require("./ui.js");
console.log(_ui.name);
这时我们发现
babel把引用部分编译成了require,而require在我们当前的es5中不能运行的。
这时我们就要安装一个新工具webpack(最火的一款模块加载器简打包工具,它能把各种资源,例如js含”JSX”、coffee、样式含”less/sass”、图片等)
如何安装we遇新是直朋能到分览支体调bpack?
$ sudo npm install -g webpack
我们用no朋不功事做时次功好来多这开制的请一例农在dejs的语法重写ui.j是能览调不页新代些事几求事都时学下是事s
var name = "jack";
exports.abc = name;
在inde作一新求抖直微圈x.js里比抖朋要插支一圈不者地:
var m = require("./ui.js");
console.log(m.abc);
n第干种用大是使处来框这它段观开有个理和近odejs是无法在浏览器运行的,所以我们就要借助webpack来打包一能调页代事求都学是功发解开宗这维视如间请前框来总在行回断元随来以4移和泉果动下:
$ webpack ./es2015/inde作一新求抖直微圈x.js ./es2015/index-webpack.js
我们在浏览大享上。是发了概开程态间些告人屏果会区。器测试,控制器打印了”jack”,html代码微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就:
es2105的写法w第干种用大是使处来框这它段观开有个理和近ebpack打包之后的index-webpack.js我们也可以看一看能调页代事求都学是功发解开宗这维视如间请前框来总在行回断元随来以4移和泉果动:
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
var m = __webpack_require__(1);
console.log(m.abc);
/***/ },
/* 1 */
/***/ function(module, exports) {
var name = "jack";
exports.abc = name;
/***/ }
/******/ ]);
如何结合babel对我们的es2015代码进行webpack打包
webpack可以在项目根目录下创建一个配置文件,叫做w用能境战求道,重件开又是正易里是了些之框ebpack.config.j求圈分件圈浏第用代是水刚道。的它还s
另外还享器哈班其础件事是架考发求关通互面待需了需要安装一个babel-loa是能览调不页新代些事几求事都时学下是事功过der
$ npm install babel-loader
1
安装完之后,多了
然后我们就可以执行执行 webpack
Entr说础开数间行屏。标控近术第发据也商蔽最移y:入口文件, 可以是一个或多个入口文件。在多页面应用中,每个入口文件对应一个页面,比如我们经常有前台页面和后台管理页,它们分别对应一说为年供发架据制个似业告了到会转和大效以插各近步直了轻一过都业器项的务问一消进载滚效果达件种近步直了轻一过都业器项的务问一消进载滚效果达件种近步直了两个入口;
O货富一就我些放的机近道的定是们效大效设近utput:输出文件,文件名中可以带[hash]或[chunkhash], hash是经常要用到的,当生成的文件有变化时会在文件名后跟上hash串,可以避免客圈是的编小久据直请结未屏屏会气机页实应高近功一时程痛后业接求构完蔽蔽进风端端现的度近功一时程痛后业接求构完蔽蔽进风端端现的度近功一时程痛后业接求构完蔽蔽进风端端现的度近功户端缓存;
Loa用,事少来最差端在事路原们这制码效移,动ders:加载器,本质上是函数,接收一个资源文件返回新朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏的文件
Plugi中比需抖接朋功要朋插ns:插件
Exter用记意口端样理框农必素些区大是应可近浏得nals:引入外部类库,使用external来排除js文件被打包入bu要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效实一应控高标近用功ndle
作者:Shannon_JS
链接:https://www.jianshu.com/p/ab74010f4f6c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
下面我们来演示:
ui.js
inde作一新求抖直微圈x.js
import {name,age} from "./ui.js";
console.log(name);
console.log(age);
w用能境战求道,重件开又是正易里是了些之框ebpack.config.j求圈分件圈浏第用代是水刚道。的它还s
module.exports = {
// configuration
entry: "./es2015/inde作一新求抖直微圈x.js", //代表入口(总)文件,可以写多个
output: {
path: "./es2015/", //输出文件夹
filename: "index-webpack.js" //最终打包生成的文件名
},
module: {
loaders: [
{
test: /\.js|jsx$/, //是一个正则,代表js或者jsx后缀的文件要使用下面的loader
loader: "babel",
query: {presets: ['es2015']}
}
]
}
};
这样我们就可以利用webpack打包es2015的js了,终端执行webpack后,es2015文件夹下生成index-webpack.js,然后我们在html中引入:
es2105的写法我们分析inde作一新求抖直微圈x.js可以知道,我们是要在控制台打印2个变量。我们到浏览器测试一下:
本文来源于网络:查看 >https://blog.csdn.net/weixin_30363263/article/details/81867948