[英]Webpack Encore - Module rules - Error when export/import scss variables into javascript
我尝试将scss / css变量导入javascript。 我偶然发现了这篇博客文章,其中使用了:export
块 。
我npm install
sass-loader
和node-sass
只是为了确保我有它们。 现在当我使用:export
,出现一个错误,告诉我sass不是有效的CSS:
$theme-colors: (
"primary": #bc2a0a,
"secondary": #4B5C74,
...
);
:export {
colorPalette: $theme-colors // Error occurs because of using sass variable
}
模块构建失败:(“ primary”:#bc2a0a,“ secondary”:#4B5C74,...)不是有效的CSS值。
我很确定这是因为我不知道如何应用模块规则。 我当前的webpack.config.js
如下所示:
let Encore = require('@symfony/webpack-encore');
let webpack = require('webpack');
const path = require('path');
Encore
.setOutputPath('public/build/')
.setPublicPath('/build')
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())
.enableVersioning(Encore.isProduction())
.addEntry('vendors', [
'react',
'react-dom',
'extend',
'prop-types',
'jquery',
'ApiRouter',
'translator',
'moment',
'moment-timezone',
'./vendor/boewa/glyphicons/src/css/glyphicons.css'
])
.addEntry('app', [
'./assets/js/main.js',
'./assets/css/app.scss',
])
.enableSassLoader()
.enableReactPreset()
// Some plugins
.addPlugin(...).addPlugin(...)
.autoProvidejQuery()
.configureFilenames({
images: '[path][name].[ext]',
})
;
let config = Encore.getWebpackConfig();
config.resolve.alias = {
'ApiRouter': 'Common/Networking/ApiRouter.js',
'translator': 'Common/Translator.js'
};
config.resolve.modules = [
path.resolve('./assets/js'),
path.resolve('./node_modules')
];
module.exports = config;
那么,如何使:export
起作用,以便可以在javascript中使用sass / css变量?
您需要在项目中将CSS模块安装为依赖项,并在webpack配置中启用它。
这是一个例子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.