毕业设计做网站好做吗,单页面网站如何优化,wordpress登录密码忘,做网站怎么电话约客户通过选择 development, production 或 none 之中的一个#xff0c;来设置 mode 参数#xff0c;你可以启用 webpack 内置在相应环境下的优化。其默认值为 production。 会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 developmen或者production. 为模块和 chunk 启用… 通过选择 development, production 或 none 之中的一个来设置 mode 参数你可以启用 webpack 内置在相应环境下的优化。其默认值为 production。 会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 developmen或者production. 为模块和 chunk 启用有效的名。
例如js文件里面打印 process.env.NODE_ENV会得到你配置的值 development和production的区别
代码编译后的结果不同
development模式
development模式会把js内容放到eval里面执行打包后的js文件内容如下
eval的作用是动态执行js这样可以方便动态更新里面的内容
((__unused_webpack_module, __webpack_exports__, __webpack_require__) {eval(__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sum__WEBPACK_IMPORTED_MODULE_0__ __webpack_require__(/*! ./sum */ \./src/sum.js\);\n\nconsole.log(\dsfasdf\)\nconst result (0,_sum__WEBPACK_IMPORTED_MODULE_0__[\default\])([1, 2]);\nconsole.log(\result\, result)\nconst result2 (0,_sum__WEBPACK_IMPORTED_MODULE_0__[\default\])([1, 2, 3]);\nconsole.log(\result\, result2)\nconsole.log(\env\, \development\)\n\n//# sourceURLwebpack://demo1/./src/main.js?);});
production模式
则是编译后的纯代码
((){use strict;
const ooo.reduce(((o,s)os),0);
console.log(dsfasdf);
const so([1,2]);
console.log(result,s);
const co([1,2,3]);
console.log(result,c),
console.log(env,production)
})();
production开启内部插件development没有
FlagDependencyUsagePlugin编译时标记nodemodule依赖 unused harmony export 用于 Tree shaking移除没有使用到的代码FlagIncludedChunksPlugin 编译时候标记移除chunks中没有使用到的代码文件分割后输入的文件叫做chunk文件ModuleConcatenationPlugin:在webpack打包时将bundle 内各个模块预编译到一个闭包中提升代码在浏览器中的执行速度相比之前的打包方式—每个模块都是一个闭包 NoEmitOnErrorsPlugin:在编译出现错误时跳过输出阶段。这样可以确保输出资源不会包含错误
实战
初始化npm项目
npm init -y
目录下生成了package.json 文件
安装webpack依赖
npm i webpack weblack-cli -D
新建src/main.js,内容如下
import sum from ./sum
console.log(dsfasdf)
const result sum([1, 2]);
console.log(result, result)
const result2 sum([1, 2, 3]);
console.log(result, result2)
console.log(env, process.env.NODE_ENV)
新建src/sum.js,内容如下
var sum (arr) arr.reduce((pre, curr) {pre curr;return pre;
}, 0)
export default sum; 执行命令
npx webpack ./src/mian.js ---modedevelopment
得到目录/.dist/main.js内容如上面所述的development模式的内容
执行命令
npx webpack ./src/mian.js ---modeproduction
得到目录/.dist/main.js内容如上面所述的production模式的内容
输入内容为空
如果main.js文件内容如下
var sum (arr) arr.reduce((pre, curr) {pre curr;return pre;
}, 0)
export default sum; 在production模式下输出文件内容为空因为开启了FlagIncludedChunksPlugin模块移除了没有被调用的代码