部署到vm

时间:2018-03-28 14:07:43

标签: linux angular npm virtual-machine angular-cli

我有一个应用程序从角度2迁移到角度5.当我在本地部署并通过http-server启动它时,我没有错误。

当我在我的虚拟机上部署时会出现问题。部署后,当我在浏览器中打开它时,它会抛出以下错误:

  

TypeError:Object(...)不是函数       在_isAndroid(forms.js:920)

     

错误:未捕获(在承诺中):TypeError:Object(...)不是函数   TypeError:Object(...)不是函数       在_isAndroid(forms.js:920)

vm中的部署过程如下:

  1. 克隆存储库
  2. 安装npm packages
  3. 通过angular-cli
  4. 构建应用程序
  5. 复制相对路径上的分发文件夹
  6. 我的机器(本地和虚拟机)具有完全相同的npm 5.8.0,@ angular-cli 1.7.3并且我不使用package-lock.json

    最后,我必须提一下,在迁移之前,我有完全相同的部署过程。

    你知道什么可能出错吗?

    更新

    我想到的是一个全新的虚拟机初始化(os,节点等)

2 个答案:

答案 0 :(得分:0)

我不相信Node 6.x中有Object静态方法(好吧,不是没有标志) 根据Node网站,他们可以在7.x开始使用。

有关所需最低版本的详细信息,请参阅此page

如ForestG所述,您最好的解决方案是将VM更新到Node 7.x或更高版本。

答案 1 :(得分:0)

由于缺少;或激进的优化或文件损坏会导致缩小问题,但如果没有源代码则很难理解。

示例:

//without minification works ok
function test() {
      var postTypes = new Array('hello', 'there')   
      (function() { alert('hello there') })()
}

//after minification produces error Uncaught TypeError: object is not a function
function test() {
      var postTypes = new Array('hello', 'there')(function() { alert('hello there') })()
}