Я посмотрел ближе на то, как angular-cli обрабатывает глобальные стили, и эта пересмотренная конфигурация сработала для меня:
{
// Process the component styles
exclude: path.resolve(__dirname, 'src/assets/styles/styles'),
test: /\.(scss)$/,
use: [
{ loader: 'raw-loader' }, // Load component css as raw strings
{
loader: 'sass-loader', // Compiles Sass to CSS, using Node Sass by default
options: {
sourceMap: true
}
},
]
},
{
// Process the global tailwind styles
include: path.resolve(__dirname, 'src/assets/styles/styles'),
test: /\.(scss)$/,
use: [
{
loader: 'style-loader',
options: {
sourceMap: false
}
},
{
loader: 'postcss-loader', // Process tailwindcss,
options: {
plugins: [
tailwindcss('./tailwind.js'),
require('autoprefixer'),
],
}
},
{
loader: 'sass-loader', // Compiles Sass to CSS, using Node Sass by default
options: {
sourceMap: false
}
},
]
}
Решения заключаются в том, чтобы обрабатывать компонент и глобальные стили отдельно. raw-loader работает лучше, чем css-loader и to-string-loader. Этот dev-конфигуратор с style-loader также позволяет выполнять горячую замену модуля при редактировании стилей компонента и попутного ветра.
Экземпляр, возвращенный из GetSection, не является потокобезопасным. Это означает, что вам нужно добавить код блокировки, чтобы использовать его в вашем синглтоне.
Несколько вызовов не выполняют повторный анализ файла, если только файл не был изменен. Данные кэшируются в памяти.
Ваша проблема безопасности потоков легко решается с помощью блокировки (я не уверен, что вам понадобится, если вы не меняете конфигурацию во время выполнения), и нет проблем с производительностью.
ConfigurationManager.GetSection (string) является общедоступным статическим членом, и поскольку msdn заявляет, что «любые общедоступные статические (Shared в Visual Basic) члены этого типа являются поточно-ориентированными», можно предположить, что это безопасен в использовании.
Что касается производительности, я хотел бы предположить, что MS уже сделала это довольно эффективным и просто использовать свои функции как есть. Помните: преждевременная оптимизация - корень зла.
Любые открытые статические (Shared в Visual Basic) члены этого типа являются потокобезопасными », вы можете предположить, что это безопасно для использования.Что касается производительности, я хотел бы предположить, что MS уже сделала это довольно эффективным и просто использовать свои функции как есть. Помните: преждевременная оптимизация - корень зла.
Любые открытые статические (Shared в Visual Basic) члены этого типа являются потокобезопасными », вы можете предположить, что это безопасно для использования.Что касается производительности, я хотел бы предположить, что MS уже сделала это довольно эффективным и просто использовать свои функции как есть. Помните: преждевременная оптимизация - корень зла.