1、问题出现

  最近公司上线前端H5页面,使用npm打包,特别奇怪的是每次打包发现css和js文件与Windows下打包不一致(网页使用Windows环境开发),导致前端页面功能不正常。

2、问题排查

  ① 更换服务器:无用

  ② 更换npm版本:无用

  ③ 在另一台Windows上打包:无用

  ④ 等等网上说的方法:无用

3、我是如何确认是css和js文件不一致的

  ① 首先我在Linux打包机器上正常打包

  

  ② 打包过程中无任何报错,之前上线也是如此。(所以一开始并没有发现是打包问题)

  ③ 通过浏览器打开css和js文件,发现与正常页面确实有所差异,于是让前端开发重新打了一次包与我打包的进行比对

  

  ④ 发现最重要的一个js文件确实不一样,于是确认是npm打包出现问题。

4、我是如何找出npm打包问题的原因的

  利用npm打包上线需要经过以下步骤:

  ① 克隆代码到本地

  ② 安装npm依赖环境

  ③ build

  于是断定问题出现在了npm依赖环境上

  安装npm依赖环境:npm install --registry=https://registry.npm.taobao.org

  上述命令是根据package.json进行安装的,安装完成后,使用npm list查看对应模块版本,发现都被默认升级

  再次尝试:

    ① 使用命令npm shrinkwrap锁定依赖版本:无用

    ② 单独安装模块:无用

  到此时已经发现问题的根源,但是无法解决,还是对npm不太了解。

5、再次尝试

  向开发要来了他Windows下npm所用的所有环境和模块,准备尝试手动安装,并保持全部一致。

  安装过程中,突然想起来当初迁移python项目时也出现过相似的环境依赖问题,当时最终的解决办法时直接拷贝整个python环境到新环境,然后解决问题。

  于是再次向开发要了他当前环境的node_modules整个目录,首先在Windows上尝试。

  解压后执行命令:npm list

  发现和开发Windows的模块一致,继续执行npm run build

  发现激动人心的结果

  打包完毕后,js文件与开发打包的保持一样,上线测试环境,一切正常。

6、最终解决

  按照相同的方法,拷贝整个node_modules目录到Linux打包机上。

  执行nvm list:结果一致

  执行npm run build,再次报错,如下:意思就是Node.js 6.X是基于Windows 64-bit,不支持当前Linux环境

  网上搜索此错误查到结果,执行命令:npm rebuild node-sass,即可解决。

  再次打包:npm run build,终于看到久违的结果

  

  至此,Windows下的项目迁移到Linux上完毕。问题的根本原因:依赖

  

解决Windows和Linux使用npm打包js和css文件不同的问题的更多相关文章

  1. ASP.NET中母版页引用外部js或css文件无效,提示对象未定义解决方法

    最近做网站用了一个js+css实现的带有二级菜单的导航条,在母版页创建好后,子页面调用出现了许多奇怪的问题,多方查证后的最终解决方案和大家分享下.... 1.路径问题 如果是一个单独的aspx页面调用 ...

  2. grunt 单独压缩多个js和css文件【转】

    原文地址:http://xiaomiya.iteye.com/blog/2177877 使用grunt来压缩前端js,css文件 因为最近做的客户端本地项目有用到十几个js,js提交之前都需要压缩.用 ...

  3. JavaScript使用localStorage缓存Js和css文件

    对于WebApp来说,将js css文件缓存到localstorage区可以减少页面在加载时与HTTP请求的交互次数,从而优化页面的加载时间.特别是当移端信号不好高延迟时优化效果还是很显见的 下面的代 ...

  4. 使用Maven构建Java Web项目时,关于jsp中引入js、css文件路径问题。

    今天有点闲,自己动手搭建一个Java Web项目,遇到jsp中引入js.css文件时路径不正确的问题,于是在网上查阅了很多资料,最终都无法解决问题,于是,上stackoverflow找到了解决方法,这 ...

  5. [转][前端优化]使用Combres合并对js、css文件的请求

    本文转自:http://www.cnblogs.com/parry/archive/2011/01/28/Reduce_Http_Request_Using_Combres_For_Js_Css.ht ...

  6. 为js和css文件自动添加版本号

    web应用必然要面对缓存问题,无论前台后台都会涉足缓存.特别是对于前端而言,缓存利用的是否得当直接关系到应用的性能. 通常情况下,我们会倾向于使用缓存,因为缓存一方面可以减少网络开销,一方面可以减轻服 ...

  7. 引用:使用grunt 压缩 合并js、css文件

    引用:https://www.jianshu.com/p/08c7babdec65 压缩 js 文件 1.创建一个目录 名为grunt   目录.png 2.在grunt目录下创建一个 src目录,存 ...

  8. [Asp.net MVC]Bundle合并,压缩js、css文件

    摘要 在web优化中有一种手段,压缩js,css文件,减少文件大小,合并js,css文件减少请求次数.asp.net mvc中为我们提供一种使用c#代码压缩合并js和css这类静态文件的方法. 一个例 ...

  9. 项目中对模板和js,css文件进行压缩的处理类

    我们知道,在html的页面中,所有空格和换行符其实都会占据一定的空间,即使使用了gzip压缩,在传输过程中依然会浪费用户的流量和我们自己服务器的带宽,此脚本就是为了解决这个问题而诞生的. 请自行下载G ...

随机推荐

  1. 爬起点小说day03

    # 把所有类别的前3页的小说爬取下来 import scrapyfrom scrapy.http import Requestfrom time import sleepfrom qidianNove ...

  2. 实时同步rsync+inotify

    实时同步rsync+inotify 原创博文http://www.cnblogs.com/elvi/p/7658071.html #linux同步 #实时同步rsync+inotify,双向同步ino ...

  3. unity中调用其他脚本函数的方法(小白之路)

    第一种,被调用脚本函数为static类型,调用时直接用  脚本名.函数名().很不实用-- 第二种,GameObject.Find("脚本所在物体名").SendMessage(& ...

  4. zoj 3195 Design the city LCA Tarjan

    题目链接 : ZOJ Problem Set - 3195 题目大意: 求三点之间的最短距离 思路: 有了两点之间的最短距离求法,不难得出: 对于三个点我们两两之间求最短距离 得到 d1 d2 d3 ...

  5. codeforces 887B Cubes for Masha 两种暴力

    B. Cubes for Masha time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  6. zzuli 2130: hipercijevi 链式前向星+BFS+输入输出外挂

    2130: hipercijevi Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 595  Solved: 112 SubmitStatusWeb B ...

  7. UWP Flyout浮动控件

    看见没,点击"Options"按钮,浮动出来一个界面,这个界面可以用xaml自定义. 如果要点击的控件又Flyout属性那么,可以直接按照下面用 <Button Conten ...

  8. sqlserver 全库查询 带架构

    网上现有的全库查询,无法识别自定义架构的数据库结构: ) ) ) declare @counts int )--以上定义变量 declare cur1 cursor for select a.name ...

  9. 某pdf转word v6.3.0.2算法分析

    某pdf转word v6.3.0.2算法分析 [文章标题]某pdf转word v6.3.0.2算法分析 [文章作者]jieliuhouzi[原版下载]www.pdfcword.cn [保护方式]序列号 ...

  10. Juel 表达式使用

    JUEL 包的结构例如以下: 1.1.1. Juel maven仓库配置 眼下最新的版本号是2.2.7.使用的时候在pom.xml中加入仓库坐标就可以. <dependency> < ...