Ошибка консоли в 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'
});
Другие вопросы по тегам