Aurelia upgraded library stops existing working application


#1

Yesterday I have taken latest library of Aurelia from npm install. Unfortunately my working application get stopped and it behaves differently.

Error: Parser Error: Unconsumed token validateSearchForm at column 27 in expression [manageDDLPlaceHolder(this) validateSearchForm(false)]

HTML
select id="{componentID}" name="{componentID}" class="${(hasFocus || alwaysHasFocus) ? valueFocusedCssClass : valueCssClass}" if.bind=“type === constants.controlTypes.Dropdown”
value.bind=“model.value & validateOnChangeOrBlur” change.trigger=“manageDDLPlaceHolder(this) validateSearchForm(false)” focus.bind=“hasFocus” class.bind=“isOverRide ? ‘override’ : ‘’” style=“float: right;”

Then I have copied old node_modules to my project folder then my application working fine.

Is new library of Aurelia unstable? Please suggest me what to do in such cases.


#2

We have had trouble doing Net Core applications since there is no documentation as to what versions of libraries work correctly only the versions that are compatible with official templates and au new appear to offer full functionality. Change any npm package and it may still work or may fail to compile. We keep copies of all the node-modules directories so if it breaks can restore to working state quickly. Uninstallation of an npm package that fails to install may also fail. Backup everything since you do not want to lose a working installation that has taken associated with a lot of work. Remember what is going on. These libraries are dependent on NodeJS and various versions of npm that behave differently with some dependencies and some dependencies are incorrect. we only find out what is wrong when compilation or run time errors occur. The current version of Node is 10.5 which is several versions above the really stable version of Node which is 8.11.3. Many repositories need the very latest versions. Good Luck. Perhaps something will be documented but until then hard slogging day and night may be required :slight_smile:


#3

looks like the update to aurelia-biding 2.0.0 caused it. was triggering two handlers allowed with binding 1.7? hmm, seems so. well, not allowed in ^2.0.0.

so, try to revert to 1.7 or wrap them into a single handler and/or raise the issue at the aurelia-binding repo


#4

Disregarding the aurelia-binding parser new implementation, your expression is not a valid JavaScript expression (the Aurelia expression is a subset of real JavaScript expression).

I am bit surprised the old parser didn’t complain.

Try

change.trigger="[manageDDLPlaceHolder(this), validateSearchForm(false)]"

#5

Several core packages were minor bumped to use aurelia-binding@2.x except aurelia-templating-router and this causes problems…


#6

FYI, it looks like latest aurelia-templating-router v1.3.2 fixed the dependency issue.


#7

This should not happen with minor updates to critical components such as the binding component. This is one of the best features of the Aurelia suite :slight_smile:

“Software should not only work, but it should be beautiful in both its customer-facing design and its internal architecture. It should be built so that developers can continue to add value over time, without re-writing every year.” (from the Blue Spire Home Page)