升级节点版本

时间:2018-03-21 18:16:51

标签: node.js npm babel yarnpkg

我现在试图解决这个问题6个小时,我慢慢开始失去理智,所以请原谅我的一般性问题。

首先我正在使用:

节点:8.10.0 | npm:5.6.0 |纱线:1.5.1

我刚刚将我的项目升级到Node v8并且npm拒绝安装所有依赖项,所以我安装了纱线,它立即解决了这个问题。

我的资源是使用Laravel Mix编译的,它使用Webpack,Babel,......内部。

安装和编译我的源代码现在完全正常但由于某种原因我编译的js文件不再工作(即使我降级到之前的Node版本 - 6.10.0)。

Uncaught TypeError: fn.bind is not a function
at nativeBind (admin.js?id=8c4a6887899977ba8021:72515)
at initMethods (admin.js?id=8c4a6887899977ba8021:75849)
at initState (admin.js?id=8c4a6887899977ba8021:75617)
at Vue._init (admin.js?id=8c4a6887899977ba8021:76936)
at new Vue (admin.js?id=8c4a6887899977ba8021:77037)
at Object../resources/assets/js/admin.js (admin.js?id=8c4a6887899977ba8021:83350)
at __webpack_require__ (admin.js?id=8c4a6887899977ba8021:20)
at Object.1 (admin.js?id=8c4a6887899977ba8021:83790)
at __webpack_require__ (admin.js?id=8c4a6887899977ba8021:20)
at ./node_modules/babel-loader/lib/index.js?{"cacheDirectory":true,"presets":[["env",{"modules":false,"targets":{"browsers":["> 2%"],"uglify":true}}]],"plugins":["transform-object-rest-spread",["transform-runtime",{"polyfill":false,"helpers":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/Autocomplete.vue.Object.defineProperty.value (admin.js?id=8c4a6887899977ba8021:63)

我绝对不知道这个错误意味着什么,更不用说是什么导致它了。

我知道错误信息非常通用,可能意味着许多事情,但希望有人知道在我的背景下它意味着什么。

谢谢!

2 个答案:

答案 0 :(得分:2)

@Ortomala Lokni的回答让我朝着正确的方向前进。

出于某种原因,我认为我的问题与我的构建脚本,npm,webpack或任何类似的东西有关,当然 - 事实并非如此。

事件虽然它并不是真正的API更改,因为他建议在我的JS文件中只是对VueJS构造函数的错误调用,由于某种原因,它已被先前版本的VueJs忽略但显然不是目前的一个。

对于任何遇到一些奇怪错误的人来说,只是没有意义我推荐以下内容:

  • 首先:确定你的问题究竟是什么 - 如果它编译它肯定与你的JS构建无关
  • 在主文件中注释掉所有JS代码
  • 此时错误应该消失
  • 通过尝试逐行取消注释(或逐块)来缩小错误,并在每次取消注释后测试代码

尽管这些步骤看似显而易见,但你很容易忘记这么简单的事情,因为在使用现代JS时可能会破坏数百万件事。

答案 1 :(得分:1)

有时,当您升级库时,您必须调整一些代码。由于Javascript不是一种打字语言,因此问题不会出现在编译时,而是出现在运行时。

在您的情况下,我认为您遇到与this one类似的问题。

检查纱线已升级的库,并验证某些API是否已更改。