函數反作用是指函數在正常工做任務以外對外部環境所施加的影響。具體地說,函數反作用是指函數被調用,完成了函數既定的計算任務,但同時由於訪問了外部數據,尤爲是由於對外部數據進行了寫操做,從而必定程度地改變了系統環境。函數的反作用也有多是發生在函數運行期間,因爲對外部數據的改變,致使了同步運行的外部函數受到影響。 引入來源百度百科node
node_modules/delete/package.json
{
"name": "delete",
"sideEffects":false,
"main": "index.js",
}
複製代碼
node_modules/delete/index.js
export var a = (function () {
console.log(11111111)
return b;
})()
export function b() {
return '22222222222';
}
export function c() {
return '333333333333';
}
複製代碼
# 僅此一行 足矣!
import { a,b,c } from "delete";
複製代碼
"scripts": {
"dev": " webpack-dev-server --inline --progress --mode development --config webpack.dev.config.js",
"build": "webpack --mode production",
"build:dev": "webpack --mode development"
},
複製代碼
準備完畢!webpack
運行npm run build
後web
沒有搜到任何的 111 or 2222。證實沒有打包進來。npm
運行npm run build
後json
搜到 111 和 2222,沒有333。證實a,b打包進來,c沒有打包進來。bash
由於a是函數自執行,a又引用b,so。。。webpack-dev-server
運行npm run build:dev
後 ide
--mode development
時,不開啓
tree-shaking
,都打包進來。