javascript - webpack 是静态编译的吗?
问题描述
让我们看一个例子:
我的.js
function fn2()
{
console.log("I am fn2.");
}
export const fn1 = function (){
console.log("I am fn1.");
}
index.js
import {fn1} from 'src/my'
function component() {
const element = document.createElement('div');
fn1();
fn1 = 1;
return element;
}
document.body.appendChild(component());
我npx webpack --mode development
用来获取bundle.js:
--- something ---
/***/ "./src/my.js":
/*!*******************!*\
!*** ./src/my.js ***!
\*******************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"fn1\": () => (/* binding */ fn1)\n/* harmony export */ });\nfunction fn2() {\n console.log(\"I am fn2.\");\n}\n\nconst fn1 = function () {\n console.log(\"I am fn1.\");\n};\n\n//# sourceURL=webpack://webpack-demo/./src/my.js?");
--- something ---
我发现两个问题:
-
- 它包括未使用
fn2
的功能。
- 它包括未使用
-
- 我用 1 分配了常量
fn1
,但编译通过。
- 我用 1 分配了常量
注意: webpack 5.26.0
解决方案
推荐阅读
- javascript - 我正在努力在javascript中创建一个按钮
- google-chrome-extension - 从 Polkadot js 扩展中检索密码
- qt - 从 C++ 更新 QML Window 属性标志
- javascript - Vue 2;在“firebase/app”中找不到导出“默认”(导入为“firebase”)
- python - 使用 python 和 Biopython 加入不同的 FASTA 文件
- terraform - 使用 terraform 模块管理结果的细微差异
- go - 为什么在 Go 中访问 nil 指针会导致中序遍历出错
- docker - 如何在 debian 中设置 docker 服务的最大内存限制?
- python - 我如何告诉 Scrapy 抓取 start_urls 中的 data-url 而不是 url 本身?
- botframework - 访问以前的机器人响应(字符串)Microsoft Bot Composer