使用webpack配置ASP.NET MVC项目以构建进程 .
我有两个包含变量和mixin的实用程序文件,用于项目中的所有其他scss文件 . 该项目被组织成组件,每个组件都包含在其自己的文件夹中,并带有hbs,js和scss文件 . 我目前只有5个组件,每个组件都使用util文件中的变量 .
为了使每个组件能够使用两个util文件中的变量和mixin,我已经实现了sass-resources-loader并且正确地遵循了配置(据我所知) .
问题是只有一个组件scss文件似乎成功解决了mixins,其余的无法找到它们 .
我的完整webpack配置如下:
module.exports = {
entry: entryObject,
module: {
loaders: [
{
loader: "babel-loader",
exclude: /node_modules/,
query: {
presets: ["es2015", "stage-1"]
}
},
{ test: /\.hbs/, loader: "handlebars-template-loader" },
{
test: /\.(s*)css$/,
loader: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader',
'postcss-loader',
'sass-loader',
{
loader: 'sass-resources-loader',
options: {
resources: [
path.resolve(__dirname, "Styles/Common/_mixins.scss"),
path.resolve(__dirname, "Styles/Common/_variables.scss")
]
}
}
]
})
},
{ test: /\.(png|jpg)$/, loader: 'url-loader' },
{ test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000000&mimetype=application/font-woff", },
{ test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader", options: { outputPath: 'fonts/' } }
]
},
output: {
path: path.join(__dirname, "/Content/"),
filename: "[name]"
},
plugins: [
// Global variables exposed to all modules
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
Nitec: path.join(__dirname, "node_modules/nitec.es.core/src/Nitec/NitecCore"),
Handlebars: 'handlebars/runtime'
}),
new ExtractTextPlugin({ filename: 'Styles/site.bundle.css' })
],
resolve: {
modules: [__dirname, 'node_modules'],
alias: {
Components: 'Components',
Styles: 'Styles',
HandlebarsExtensions: 'Scripts/Shared/HandlebarsExtensions',
PageSetup: 'Scripts/Shared/DependencyInjector',
Fonts: 'Fonts'
},
extensions: ['*', '.js', '.jsx']
},
devtool: "cheap-module-eval-source-map", // Source map generation
};
我从构建控制台获得的错误是:
ERROR in ./node_modules/css-loader!./node_modules/postcss-
loader/lib!./node_modules/sass-loader/lib/loader.js?
outputStyle=expanded!./node_modules/sass-resources-loader/lib/loader.js?
{"resources":
["C://VSTS//SMSWorldwide//SMSProductCatalogue//SMSProductCatalogue//Styles//Common//_mixins.scss","C://VSTS//SMS Worldwide//SMSProductCatalogue//SMSProductCatalogue//Styles//Common//_variables.scss"]}!./Components/SystemManagement/UserRole/AddUserForm/AddUserForm.scss
Module build failed:
undefined
^
No mixin named abswidth
Backtrace:
stdin:281
in C:\VSTS\SMS Worldwide\SMSProductCatalogue\SMSProductCatalogue\Components\SystemManagement\UserRole\AddUserForm\AddUserForm.scss (line 281, column 38)
Error:
undefined
^
No mixin named abswidth
Backtrace:
stdin:281
in C:\VSTS\SMS Worldwide\SMSProductCatalogue\SMSProductCatalogue\Components\SystemManagement\UserRole\AddUserForm\AddUserForm.scss (line 281, column 38)
at options.error (C:\VSTS\SMS Worldwide\SMSProductCatalogue\SMSProductCatalogue\node_modules\node-sass\lib\index.js:291:26)
@ ./Components/SystemManagement/UserRole/AddUserForm/AddUserForm.scss 3:14-286
@ ./Components/SystemManagement/UserRole/AddUserForm/AddUserForm.js
@ ./Scripts/PageScripts/SystemManagement/UserRole/AddUserRole.js
其中abswidth是_mixins.scss中mixins之一的名称 . 对于使用abswidth的每个组件,此错误将再复制3次 .
如果需要更多信息,请告诉我,
提前致谢 .