webpack打包指定JS文件需要怎么做

这次给大家带来webpack打包指定JS文件需要怎么做,webpack打包指定JS文件的注意事项有哪些,下面就是实战案例,一起来看一下。

背景

最近接到一个需求,因为不确定打出的前端包所访问的后端IP,需要对项目中IP配置文件单独拿出来,方便运维部署的时候对IP做修改。因此,需要用webpack单独打包指定文件。

CommonsChunkPlugin

module.exports = { entry: { app: APP_FILE // 入口文件 }, output: { publicPath: './dist/', //输出目录,index.html寻找资源的地址 path: BUILD_PATH, // 打包目录 filename: '[name].[chunkhash].js', // 输出文件名 chunkFilename: '[name].[chunkhash].js' // commonChunk 输出文件 }}

登录后复制

题外话

{

先说一下publicPath , 这边有一个注意的点,即路径写成 ./dist 相对路径。如果写成/dist/这种绝对路径,有一个弊端是当nginx把前端的包没有放在根目录的情况下,index.html会访问资源失败。因此推荐写成相对路径,但是当使用相对路径时,有会存在一个潜在的问题,即项目本身的路由访问如果是HTML5模式,而不是使用hash时(路由上有一个#号),那么项目一样会部署失败。angular,react都会有这样的问题,vue没用过,应该类似。此时的解决办法是,在index.html的head中添加base标签,即:

   

登录后复制

}

webpack本身基于模块化,因此大多数情况下,我们仅需要一个入口文件就可以搞定。而针对本次需求,需要在app,这个入口之外再添加一个入口文件。即:

 entry: { app: APP_FILE // 入口文件 ip: IP_FILE },

登录后复制

仅这样对webpack配置之后,dist文件会成功打出app.xxx.js及ip.xxx.js,但是打包出的项目还是会报错,解决办法是:维持IP的入口文件不变,但是把它当作commonChunk来处理。即在plugins中加入:

new webpack.optimize.CommonsChunkPlugin({name: 'ip', minChunks: Infinity}),

登录后复制

这样保证优先加载ip.xxx.js,避免报错。

缺点:这样打包有一个很明显的缺点,即是打包出的文件是压缩的,不方便对文件进行二次修改。(没有找到解决压缩的办法)

CopyWebpackPlugin

最终解决办法,还是通过让ip.js这个文件脱离项目的模块化,然后在index.html中单独引用。(这是最开始就想到的解决办法,但并不是自己想要的解决方案,但无奈认知有限,没有解决掉之前的问题)。

解决流程:

首先在webpack引入CopyWebpackPlugin, 配置代码:

new CopyWebpackPlugin([  {from: './src/config/ip.js', to: 'ip.js'}, ])

登录后复制

在index.html中单独引入script标签,注意要配置一个随机后缀,即:

 document.write("");

登录后复制

防止ip.js因为缓存导致问题。

以上,就解决了webpack单独打包指定js的问题。

ps:希望有更好的方法来分享给我。

这篇webpack 单独打包指定JS文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

JS实现默认头像填充

babel的使用详解

Webpack dev server热加载无效怎么处理

以上就是webpack打包指定JS文件需要怎么做的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2781188.html

(0)
上一篇 2025年3月8日 16:13:48
下一篇 2025年3月6日 13:53:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript中字符串详解

    本文主要和大家分享javascript中字符串详解,希望能帮助到大家。 一.字符串基本 1.字符串的创建 基本的数据类型  String        var str = “字符串”; 引用的数据类型 String …

    编程技术 2025年3月8日
    200
  • 处理Web页面层布局的jQuery插件的7种办法

    这次给大家带来处理Web页面层布局的jQuery插件的7种办法,下面就是实战案例,一起来看一下。 1.UI.Layout   jQuery UI布局插件 使用大小可折叠的嵌套面板和大量选项创建高级ui布局。布局可以创建任何你想要的ui外观;…

    2025年3月8日 编程技术
    200
  • JavaScript中的原型与原型链详解

    本文主要和大家分享javascript中的原型与原型链详解,说原型的时候,一般都是在说原型属性prototype。 一.介绍 1.函数的prototype属性 *所有的函数都有一个prototype属性,它默认指向一个object空对象(即…

    2025年3月8日 编程技术
    200
  • JavaScript对象详解

    一.javascript 对象介绍 1.对象是什么?对象是程序中的对象,程序是用来描述现实生活世界。 如现在要写一个程序来管理大家的信息,这边就有每个人的信息(身高,体重等),这些信息都是相互独立,如果要高效管理这些信息,就要放到一个容器(…

    编程技术 2025年3月8日
    200
  • JavaScript中数据变量内存分析

    1.什么是数据?*数据是存储于内存中代表特定信息的‘东东’,本质就是0101二进制,本文主要和大家分享javascript中数据变量内存分析,希望能帮助到大家。 eg:18  //这个18可能只年龄  或是分数等等,, 写程序中的数据都要有…

    2025年3月8日 编程技术
    200
  • JavaScript数据类型详解

    JavaScript数据类型是JavaScript中很重要的知识点,本文主要和大家分享JavaScript数据类型详解,希望能帮助到大家。 一.JavaScript 中的数据类型(重要) (1).基本数据类型(又称值类型) a.string…

    2025年3月8日
    200
  • JavaScript中函数详解

    (1).什么是函数? 具有特定功能的n条语句的封装体。只有函数是可执行的,其他类型的数据是不可执行的。函数也是对象。 (2).函数的作用 → 提高代码复用 → 便于阅读和交流 (3).函数的定义 方式一:函数声明(推荐使用)  functi…

    2025年3月8日
    200
  • JS运行机制详解

    JS运行的环境是浏览器,浏览器是多进程的,每一个Tab页面都会多开一个进程,进程中可能包括主控进程(负责浏览器的显示,用户的前进和后退等行为),GPU,浏览器内核(浏览器渲染进程,负责页面渲染,脚本执行,事件处理)等 。 其中,浏览器内核是…

    2025年3月8日
    200
  • JS原生对象和正则表达式详解

    本文主要和大家分享JS原生对象和正则表达式详解,分别有字符串对象数组对象日期对象数学对象正则表达式,希望能帮助到大家。 希望能帮助到大家。 一、字符串对象 // charAt indexOf replace search subStr //…

    编程技术 2025年3月8日
    200
  • js如何判断邮箱格式是否正确

    本文主要和大家分享js如何判断邮箱格式是否正确,本文主要以代码的形式和大家分享,希望能帮助到大家。 登录后复制 function validate_required(field,alerttxt) { with (field) { if (…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论