网站建设中的财务预算,深圳哪里网站制作,dedecms导入网站模板,哪个网站做老款二手车webpack和TypeScript 安装webpack相关内容安装TS相关内容配置初始化数据初始化运行展示和目录展示报错解决#xff08;缺失文件配置#xff09; 安装前端必备神奇lodash测试一下entry配置index.html模板配置修改打包出来的index.html的titleinject注入chunks 属性多页面配置 … webpack和TypeScript 安装webpack相关内容安装TS相关内容配置初始化数据初始化运行展示和目录展示报错解决缺失文件配置 安装前端必备神奇lodash测试一下entry配置index.html模板配置修改打包出来的index.html的titleinject注入chunks 属性多页面配置 Tree Shaking-摇晃无用代码sideEffects属性 渐进式网络应用程序PWAPWA Shimming预置全局变量细粒度Shimming-转换this的指向全局Exports 安装webpack相关内容
npm init -y自动建立package.jsonnpm install webpack webpack-cli npm install webpack-dev-server html-webpack-plugin -D
安装TS相关内容
npm i typescript ts-loader -D
配置初始化数据
const path require(path);
const HtmlWebpackPlugin require(html-webpack-plugin);
module.exports {mode: development,entry: ./src/app.ts,module: {rules: [{test: /\.ts$/,use: ts-loader,exclude: /node_modules/,},],},resolve: {extensions: [.ts, .js],},output: {filename: bundle.js,path: path.resolve(__dirname, dist),},plugins: [new HtmlWebpackPlugin()],
};初始化运行展示和目录展示
npx webpack
报错解决缺失文件配置
npx tsc --init自动创建tsconfig.json配置一下 到此执行npx webpack 即可打包成功
安装前端必备神奇lodash测试一下
npm i lodash -D当你使用相关包包类型报错的时候原因缺少ts 相关类型文件ts相关类型文件搜索查看引用命令 npm install --save-dev types/lodash
entry配置
当入口文件不止一个的时候想多个文件打在一个里面的时候 当想单独打成文件的时候缺点这个做法相当于lodash自己打一遍但ap.ts里有使用会再打一遍最终main.js体积也会变大 抽离一下lodash目的使main.js体积变小
index.html模板配置
没有配置的时候打包出来的index.html 配置一下新建index.html 导入模块
修改打包出来的index.html的title
步骤一将index.html中改为webpack内置的属性获取标题
title%htmlWebpackPlugin.options.title %
/title步骤2; 成果展示
inject注入
chunks 属性 没配置前默认全部 有几个入口引用几个 配置图 配置后,只留下配置的
多页面配置
注意点:多页面配置filename属性要有且不同filename如果配置成“/sh_pc/index.html”打出的包会在文件夹sh_pc下
plugins: [new HtmlWebpackPlugin({title: 乞力马扎罗,template: ./index.html,inject: body, // 可以表示这个注入到哪个层filename: index.html,chunks: [main], //可以配置打包出来的index.html只能引入哪个publicPath: http://lochost:8080/, // 可以配置打包出来的index.html的路径}),new HtmlWebpackPlugin({title: 罗马迪克,template: ./index2.html,inject: body, // 可以表示这个注入到哪个层filename: index2.html,chunks: [lodash], //可以配置打包出来的index.html只能引入哪个publicPath: http://lochost:8081/, // 可以配置打包出来的index.html的路径}),],优化后
const path require(path);
const HtmlWebpackPlugin require(html-webpack-plugin);
module.exports {mode: development,entry: {main: {import: [./src/app.ts, ./src/app2.ts],dependOn: lodash,},lodash: {import: lodash,},},module: {rules: [{test: /\.ts$/,use: ts-loader,exclude: /node_modules/,},],},resolve: {extensions: [.ts, .js],},plugins: [new HtmlWebpackPlugin({title: 乞力马扎罗,template: ./index.html,inject: body, // 可以表示这个注入到哪个层filename: sh_pc/index.html,chunks: [main], //可以配置打包出来的index.html只能引入哪个publicPath: http://lochost:8080/, // 可以配置打包出来的index.html的路径}),new HtmlWebpackPlugin({title: 罗马迪克,template: ./index2.html,inject: body, // 可以表示这个注入到哪个层filename: sh_oc/index2.html,chunks: [lodash], //可以配置打包出来的index.html只能引入哪个publicPath: http://lochost:8081/, // 可以配置打包出来的index.html的路径}),],output: {clean: true,},
};
Tree Shaking-摇晃无用代码 Tree-shaking的本质是消除无用的js代码 用到啥才会打包啥 看一下区别 虽然引入了lodash但未使用所以打出来的包里面的lodash被摇晃掉了 sideEffects属性
在package.json中进行配置即匹配到的任何css文件都不进行Tree Shaking 渐进式网络应用程序PWA
非离线状态运行借助第三方包npm i http-server -D配置一下运行脚本npm start -当他成功启动后页面展示 但当你把服务器挂掉页面就不展示 一般来说启动服务是不会更新包里面的内容如果你想更新内容
PWA
离线状态运行先安装npm i workbox-webpack-plugin -D再配置再运行页面上监听一下游览器是否支持离线运行想要清除这个离线状态访问chrome://serviceworker-internals/上点一下Unrefister即可
console.log(乞力马扎罗);
if (serviceWorker in navigator) {window.addEventListener(load, () {navigator.serviceWorker.register(/service-worker.js).then((registration) {console.log(service-worker registed);}).catch((error) {console.log(service-worker registed error);});});
}npm start
Shimming预置全局变量
旧代码 新项目本来会报错但通过预置全局变量配置了就不会配置完lodash就是全局的了这样配置即可
细粒度Shimming-转换this的指向
有些模块的this指向window对象但实际我们的CommonJS项目中this指向指向的实际位置不是解决方法通过使用imports-loader覆盖this指向目前问题 解决步骤一npm i imports-loader步骤二配置
全局Exports
第三方模块你不清楚他是如何导出的故你想使用但不想导入想直接使用里面的方法步骤一npm i exports-loader -D步骤二新建要导入的文件gloabls.js
const file 公共的;const helpers {parse() {console.log(方法);},
};步骤三webpack.config.js里面配置 步骤四 页面中使用