Webpack 使用网页包处理白标签

Webpack 使用网页包处理白标签,webpack,Webpack,我是用angular和webpack构建的web应用程序的维护者。我的任务是使web应用程序具有白标签功能。实际上,这意味着该应用程序将需要为每个客户提供不同的外观(css/图像)和配置 我正在努力寻找一个好的解决方案,而不是陷入无法维持的混乱 其他人是否有使用webpack构建具有白标签功能的web应用程序的经验?使用了什么方法?如果您通过运行程序(如gulp)控制您的网页构建,您可以根据参数或环境变量动态更改配置。这将允许您使用别名,该别名可以被CSS/资产等的不同路径覆盖 比如说 在web

我是用angular和webpack构建的web应用程序的维护者。我的任务是使web应用程序具有白标签功能。实际上,这意味着该应用程序将需要为每个客户提供不同的外观(css/图像)和配置

我正在努力寻找一个好的解决方案,而不是陷入无法维持的混乱


其他人是否有使用webpack构建具有白标签功能的web应用程序的经验?使用了什么方法?

如果您通过运行程序(如
gulp
)控制您的网页构建,您可以根据参数或环境变量动态更改配置。这将允许您使用别名,该别名可以被CSS/资产等的不同路径覆盖

比如说

在webpack.config.js中,为每个生成将更改的路径添加别名,并添加一些默认路径

解析:{
别名:{
“资产”:path.resolve(\uu dirname,'assets')
“css”:path.resolve(\uu dirname,'css')
}
}
在CSS中,使用别名而不是硬编码路径(
~
表示将其视为模块路径,webpack将查找别名)

@import'~css/some/other/styles.css'
布拉赫先生{
背景:url(“~assets/blah.img”)
}
在gulp文件中,更改别名在生成时指向的路径

从“webpack”导入网页
从'yargs'导入{argv}
从“gulp util”导入gutil
从“./webpack.config.js”导入webpackConfig
吞咽任务('webpack',(cb)=>{
//克隆原始配置以进行安全的本地操作
const wpConfig=Object.create(webpackConfig)
如果(argv.css)wpConfig.resolve.alias.css=argv.css
如果(argv.assets)wpConfig.resolve.alias.assets=argv.assets
返回网页包(wpConfig,(err,stats)=>{
如果(错误)抛出新的gutil.PluginError(“[webpack]”,错误)
log('[webpack]',stats.toString({colors:true}))
cb()
})
})

并通过命令行传递重写路径运行它。如果您通过运行程序(如
gulp
)来控制网页包的构建,您可以根据参数或环境变量动态更改配置。这将允许您使用别名,该别名可以被CSS/资产等的不同路径覆盖

比如说

在webpack.config.js中,为每个生成将更改的路径添加别名,并添加一些默认路径

解析:{
别名:{
“资产”:path.resolve(\uu dirname,'assets')
“css”:path.resolve(\uu dirname,'css')
}
}
在CSS中,使用别名而不是硬编码路径(
~
表示将其视为模块路径,webpack将查找别名)

@import'~css/some/other/styles.css'
布拉赫先生{
背景:url(“~assets/blah.img”)
}
在gulp文件中,更改别名在生成时指向的路径

从“webpack”导入网页
从'yargs'导入{argv}
从“gulp util”导入gutil
从“./webpack.config.js”导入webpackConfig
吞咽任务('webpack',(cb)=>{
//克隆原始配置以进行安全的本地操作
const wpConfig=Object.create(webpackConfig)
如果(argv.css)wpConfig.resolve.alias.css=argv.css
如果(argv.assets)wpConfig.resolve.alias.assets=argv.assets
返回网页包(wpConfig,(err,stats)=>{
如果(错误)抛出新的gutil.PluginError(“[webpack]”,错误)
log('[webpack]',stats.toString({colors:true}))
cb()
})
})
并通过命令行传递重写路径来运行它
gulpwebpack--css client1/css--assets client1/assets