这取决于您的项目是如何设置的。以及您是否从 CLI 中弹出。我使用带有 angular 4 和 webpack 的弹出 angular-cli。弹出或者不弹出都可以自定义环境文件,但是css构建过程在构建过程中比环境文件要早。我建议自定义 webpack 配置以根据您的构建目标复制基于您的 npm 脚本的文件。您可以使用 GlobCopyWebpackPlugin 将文件复制到输出文件夹。然后您将静态导入该 css 文件。
例如,在 webpack.config.js 中,我在构建过程中将文件复制到输出文件夹,您可以以相同的方式复制 css,然后在您的主 index.html 中只需引入环境提供的 css你正在建造。
new GlobCopyWebpackPlugin({
"patterns": [
"assets",
"favicon.ico",
"manifest.json",
"sw.js"
],
"globOptions": {
"cwd": process.cwd() + "/src",
"dot": true,
"ignore": "**/.gitkeep"
}
})
我的 package.json 在脚本构建过程中提供了环境标志
"scripts": {
"ng": "ng",
"start": "webpack-dev-server --env.target=local --port=4200 --history-api-fallback",
您可以使用环境标志为 GlobCopyWebpackPlugin 选择合适的 css 文件
// export a function that returns a promise that returns the config object
module.exports = function(env) {
const isLocal = env.target === 'local';
if(isLocal) { /* set the css file to a variable mycssfile*/ }
/* code removed for brevity */
"plugins": [
new NoEmitOnErrorsPlugin(),
new GlobCopyWebpackPlugin({
"patterns": [
`${mycssfile}`,
"assets",
"favicon.ico",
"manifest.json",
"sw.js"
],
"globOptions": {
"cwd": process.cwd() + "/src",
"dot": true,
"ignore": "**/.gitkeep"
}
})`