Ошибка консоли в steal.js: "Невозможно определить свойство _instanceDefinitions"
Загрузка страницы приводит к следующей ошибке:
steal.js:140 Potentially unhandled rejection [1] TypeError: Cannot define property _instanceDefinitions, object is not extensible
at Function.defineProperty (<anonymous>)
at Object.defineExpando (http://localhost:8080/node_modules/can-define/define-helpers/define-helpers.js:20:11)
at DefineMap.setKeyValue (http://localhost:8080/node_modules/can-define/map/map.js:52:30)
at Object.setKeyValue (http://localhost:8080/node_modules/can-reflect/reflections/get-set/get-set.js:50:23)
at Object.eval (http://localhost:8080/node_modules/can-reflect/reflections/shape/shape.js:701:23)
at String.eval (http://localhost:8080/node_modules/can-reflect/reflections/shape/shape.js:445:21)
at Object.eachListLike (http://localhost:8080/node_modules/can-reflect/reflections/shape/shape.js:376:17)
at Object.eachIndex (http://localhost:8080/node_modules/can-reflect/reflections/shape/shape.js:338:16)
at Object.eachKey (http://localhost:8080/node_modules/can-reflect/reflections/shape/shape.js:443:16)
at Object.assignDeepMap (http://localhost:8080/node_modules/can-reflect/reflections/shape/shape.js:698:8)
Горячее перекодирование больше не работает. Кажется, это происходит из steal.js, и я понятия не имею, как это связано с моим кодом. Может ли быть так, что эта проблема происходит в рабочем потоке...?
Вот мой package.json:
...
"dependencies": {
"can-ajax": "^1.1.4",
"can-component": "^3.3.10",
"can-connect": "^1.5.9",
"can-define": "^1.5.5",
"can-route": "^3.2.3",
"can-route-pushstate": "^3.1.2",
"can-set": "^1.3.2",
"can-stache": "^3.11.1",
"can-view-autorender": "^3.1.1",
"can-zone": "^0.6.13",
"done-autorender": "^1.4.0",
"done-component": "^1.0.0",
"done-css": "^3.0.1",
"done-serve": "^1.5.0",
"generator-donejs": "^1.0.7",
"lodash": "^4.17.5",
"steal": "^1.5.15",
"steal-less": "^1.2.0",
"steal-stache": "^3.1.2"
},
"devDependencies": {
"can-fixture": "^1.1.1",
"donejs-cli": "^1.0.0",
"funcunit": "^3.2.0",
"steal-qunit": "^1.0.1",
"steal-tools": "^1.9.1",
"testee": "^0.3.0"
}
...
Узел:
node --version
v8.9.2
npm --version
5.5.1
ОПЕРАЦИОННЫЕ СИСТЕМЫ:
ver
Microsoft Windows [Version 10.0.15063]
1 ответ
В качестве краткосрочного решения попробуйте добавить { seal: false }
к вашему приложению viewmodel:
const AppViewModel = DefineMap.extend({ seal: false }, {
title: {
value: 'spotwizard.org',
serialize: false
}
});
Обновление: после дальнейшего тестирования вы пытаетесь установить свойство "page" в вашей модели представления приложения, но вы не определили его. Модель вашего приложения должна выглядеть так:
const AppViewModel = DefineMap.extend({
title: {
value: 'spotwizard.org',
serialize: false
},
page: 'string'
});