Недавно мне пришлось обновить несколько проектов, которые использовали npm и package.json для их магии gruntfile.js. Следующая команда bash (многострочная команда) хорошо сработала для меня:
npm outdated --json --depth=0 | \
jq --ascii-output --monochrome-output '. | keys | .[]' | \
xargs npm install $1 --save-dev
Идея здесь: направить вывод npm outdated
как json, в jq
(jq является анализатор командной строки / инструмент запросов json)
(обратите внимание на использование аргумента --depth
для npm outdated
)
jq сократит вывод до только имени пакета верхнего уровня.
наконец, xargs помещает каждое LIBRARYNAME по одной в команду npm install LIBRARYNAME --save-dev
Выше приведено то, что мне помогло на работающей машине: node = v0.11.10 osx = 10.9.2 npm = 1.3.24
это потребовалось:
xargs http://en.wikipedia.org/wiki/Xargs (я считаю, что он принадлежит моей машине)
и
jq http://stedolan.github.io/jq/ (я установил его с brew install jq
)
Примечание: я сохраняю только обновленные библиотеки в package.json внутри ключа json devDependancies
с использованием --save-dev
, что было требованием моих проектов, вполне возможно, не вашим.
После этого я проверяю, что все хорошо, с помощью простого
npm outdated --depth=0
Кроме того, вы можете проверить текущие версии установленных библиотек верхнего уровня с помощью
npm list --depth=0
Я не думаю, что вы можете, однако вы можете повторно использовать стиль таким образом:
<Style x:Key="ActiveStyle" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsFocused" Value="true">
<Setter Property="BorderBrush" Value="Green" />
<Setter Property="BorderThickness" Value="2" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource ActiveStyle}">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="Gray" />
</Style>
Я не вижу другого решения: (
WPF предоставляет специальное свойство для этого FrameworkElement.FocusVisualStyle Итак, давайте, назначьте это:)
<TextBox FocusVisualStyle="{StaticResource ActiveStyle}" .....
Или другой способ, используя сеттеры
<Style TargetType="{x:Type TextBox}">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="Gray" />
<Setter Property="FocusVisualStyle" >
<Setter.Value>
<Style x:key="ActiveStyle" TargetType="{x:Type TextBox}">
<Setter Property="BorderBrush" Value="Green" />
<Setter Property="BorderThickness" Value="2" />
</Style>
</Setter.Value>
</Setter>
</Style>