91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

webpack與babel解析module.exports差異

發布時間:2020-08-01 14:09:17 來源:網絡 閱讀:1746 作者:antlove 欄目:web開發

來來來代碼先上

js/main.js

import * as aliasPerson from "./person.js";
import defaultPerson from "./person.js";
console.log("alias person is below ...");
console.log(aliasPerson);
console.log(aliasPerson.prototype);
console.log("default person is below ...");
console.log(defaultPerson);
console.log(defaultPerson.prototype);


js/person.js

function Person(){}
Person.nickname = "this is a person";
Person.birthday = "1900-01-01";
Person.prototype.eat = function(){};
module.exports = Person;


webpack.config.js

var entryFilePath = "./js/main.js";

var webpackConfig = {
   entry: entryFilePath,
   output: {
      filename: "result.js"
   },
   module: {
      // rules: [{test: /\.js$/,loader: 'babel-loader'}] 
   }
};
module.exports = webpackConfig;


.babelrc

{
  "presets": [
      "es2015",
      "stage-3"
    ],
    "plugins": [
      ["transform-runtime",
        {
          "helpers": false,
          "polyfill": false,
          "regenerator": true,
          "moduleName": "babel-runtime"
        }]
    ]
}


package.json

{
    "scripts": {
        "build": "webpack"
    },
    "devDependencies": {
        "babel-core": "^6.26.3",
        "babel-loader": "^7.1.4",
        "babel-plugin-transform-runtime": "^6.23.0",
        "babel-preset-es2015": "^6.24.1",
        "babel-preset-stage-3": "^6.24.1",
        "babel-runtime": "^6.26.0",
        "webpack": "^3.10.0",
        "webpack-dev-server": "^2.9.7"
    }
}


一 不使用babel做轉義

直接執行 npm run build 生成result.js

執行 node result.js

webpack與babel解析module.exports差異


import * as aliasPerson from "./person.js";

import defaultPerson from "./person.js";

執行結構完全一樣


二 使用babel做轉義

取消如下注釋.

webpack與babel解析module.exports差異

執行 npm run build 生成result.js

執行 node result.js

webpack與babel解析module.exports差異

使用 import * as aliasPerson from "./person.js";

多了 一個default屬性,并且 aliasPerson.prototype 為 undefined


原因如下

webpack與babel解析module.exports差異

import * as aliasPerson from "./person.js";

當引入的 ./person.js 模塊不為es 模塊的時候(obj.__esModule === false)

babel會將 module.exports 所指向的對象的非繼承屬性遍歷并附加到 newObj對象中,

并且 newObj.default = module.exports


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石景山区| 四会市| 双辽市| 札达县| 金堂县| 普格县| 黔江区| 乌兰浩特市| 务川| 渝中区| 靖西县| 和顺县| 仁布县| 阿拉善右旗| 佛坪县| 邯郸县| 改则县| 准格尔旗| 台江县| 柳河县| 河南省| 阿坝县| 牟定县| 永德县| 聂荣县| 临高县| 宜宾市| 平南县| 靖安县| 樟树市| 文安县| 舒兰市| 府谷县| 界首市| 阿巴嘎旗| 南涧| 陇川县| 瑞昌市| 峨山| 永福县| 沽源县|