创建一个Webpack配置文件,并使用环境变量来设置正确的路径。以下是一个可能的解决方案:
const path = require("path");
module.exports = async ({ config, mode }) => {
config.module.rules.push({
test: /\.scss$/,
loaders: ["style-loader", "css-loader", "sass-loader"],
include: path.resolve(__dirname, "../src"),
});
const env = process.env.NG_ENV;
const envPath = `./src/environments/environment.${env}.ts`;
config.module.rules.push({
test: /\.component\.ts$/,
loaders: [
{
loader: "@angular-devkit/build-optimizer/webpack-loader",
options: {
sourceMap: true,
},
},
{
loader: "@ngtools/webpack",
options: {
tsConfigPath: envPath,
},
},
],
exclude: [/node_modules/],
});
return config;
};
.storybook/main.js
中的配置更改为:module.exports = {
stories: ['../src/stories/**/*.stories.@(ts|js)'],
addons: [
'@storybook/addon-actions',
'@storybook/addon-links',
'@storybook/addon-knobs',
'@storybook/addon-essentials',
'@storybook/addon-notes'
],
webpackFinal: async (config, { configType }) => {
const newConfig = require('../storybook-webpack.config.js')({ config, mode: configType });
return { ...newConfig, resolve: { ...newConfig.resolve, ...config.resolve } };
},
};
${process.env.NG_ENV}
来引用环境变量,在根目录下创建一个名为.env
的文件,将环境变量设置为所需的值。现在,你的Storybook应该能够正确加载Angular动态styleUrls和环境变量了。
下一篇:Angular动态填充表格