search

Home  >  Q&A  >  body text

前端开发环境保持一致,多平台保持一致的效果

在实际的工作中,有遇到一个问题:各个平台的开发环境不一致!!!

不一致的原因,取决于:

node.js版本不一致

npm的版本不一致

操作系统不一致

解决办法

使用nvm管理node.js版本,保持版本一致,这个在mac和linux中效果很好,但是反人类的window,呵呵...

保持npm版本一致,不同版本的npm生成的node_modules文件夹是有可能不一致的

使用新出炉的yarn管理包,锁定版本

结果:

然而并没有什么卵用

在公司,使用mac能把项目跑起来,然后回到家,用archlinux一跑,立马就跪了

当然这个只是小问题

关键是,我们的美工,使用window(反人类的东西),结果你懂的,每次配置环境,说多了都是泪

待商榷的方案

使用docker搭建一个容器,共有容器,然后映射外部目录,这样就能保证大家的开发环境一致。

没错,这次又是window出了问题,不能够watch文件变化,mac和linux均正常。

各位有什么好的解决方案

最后吐槽

node-sass搞尼玛那么多依赖,还各种问题


高洛峰高洛峰2937 days ago959

reply all(3)I'll reply

  • 三叔

    三叔2016-11-16 15:07:14

    npm强制锁版本,这是最简单且暴力的方法。

    其实你的这个问题不仅是前端或node有,linux开发、php开发(如果也用库控制工具)也会面临。只不过npm的库更新的比较快。公司在开发vue时用的1.0,等准备发布了npm上都更新到2.0了,几乎所有人写的代码都报废了。多数人向来都是拿来主义,完全不知道npm命令行怎么敲,都是复制粘贴的,所以完全不知道咋回事。只有C等非常传统的开发语言没这种问题(但是天天上debian上抠源码片段也挺痛苦的)

    另一种比较暴力的办法,是开发leader自己固定一个node_modules目录,之后分发给下属开发者,下面的人直接用这个目录,不自己运行npm。不过这个可能仍然解决不了windows上的问题。

    docker什么的不太推荐,那样子会有共享开发环境的问题,如果npm都解决不了,混用开发环境后互相坑害的问题会更大。

    我现在在公司里用的就是npm锁版本的方式,另外虽然开发办公用windows,但所有文件都跑在本地虚拟机CentOS上,也没有长文件名问题了。当然这么做自己可以,要求其他人就太难了。


    reply
    0
  • 欧阳克

    欧阳克2016-11-16 15:07:03

    不好意思,公司前端全线配 Mac Pro,设计全线 iMAC。

    有这个时间折腾,都够给程序员买电脑的钱了。

    其次,node-sass 确实尼玛问题多。。。 less 你值得拥有

    再次,npm 也可以锁定依赖版本的, npm shrinkwrap。


    reply
    0
  • 三叔

    三叔2016-11-16 15:06:50

    完全不能理解你为什么会有这么奇怪的问题

    1、nodejs你们一个开发小组都不能控制版本号相同?统一定下一个版本号不允许自己升级这都搞不定你还开公司?

    2、npm版本号问题同上

    3、npm安装的包本来就不同系统不通用的,难道不是一个package.json定好所有包的版本号,通过git之类的版本控制方法来同步代码,所有人自己执行npm install来安装吗?

    我开发用的三台机器mac,fedora,win10都在用,怎么就每遇到你说的任何一个状况?

    另外你们公司前端开发都用mac和Linux?做IE适配的时候怎么做的?开虚拟机?哦呵呵呵,也是不嫌无聊了

    还windows反人类,无知者无畏。你做前端开发一个IDE(webstorm一类,完全跨平台)或者编辑器(atom,vscode,vim,emacs之类,同样跨平台),一个浏览器(chrome,firefox跨平台),加几个命令行运行脚本(npm脚本,node后台,同样跨平台),我完全看不出在团队有人必须要用windows的情况下有任何不用windows不行的理由


    reply
    0
  • Cancelreply