Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions apps/public-docsite-resources/webpack.serve.config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// @ts-check
const path = require('path');
const getResolveAlias = require('@fluentui/scripts/webpack/getResolveAlias');
const resources = require('@fluentui/scripts/webpack/webpack-resources');
const { resources, getResolveAlias } = require('@fluentui/scripts/webpack');
const { addMonacoWebpackConfig } = require('@fluentui/react-monaco-editor/scripts/addMonacoWebpackConfig');

const BUNDLE_NAME = 'demo-app';
Expand Down
2 changes: 1 addition & 1 deletion apps/public-docsite/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const path = require('path');
const webpack = require('webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const resources = require('../../scripts/webpack/webpack-resources');
const getResolveAlias = require('../../scripts/webpack/getResolveAlias');
const { getResolveAlias } = require('../../scripts/webpack');
const { addMonacoWebpackConfig } = require('@fluentui/react-monaco-editor/scripts/addMonacoWebpackConfig');
const { getLoadSiteConfig } = require('@fluentui/public-docsite-setup/scripts/getLoadSiteConfig');

Expand Down
3 changes: 1 addition & 2 deletions apps/public-docsite/webpack.serve.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ const path = require('path');
const webpack = require('webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const IgnoreNotFoundExportWebpackPlugin = require('ignore-not-found-export-webpack-plugin');
const resources = require('../../scripts/webpack/webpack-resources');
const getResolveAlias = require('../../scripts/webpack/getResolveAlias');
const { getResolveAlias, resources } = require('../../scripts/webpack');
const { addMonacoWebpackConfig } = require('@fluentui/react-monaco-editor/scripts/addMonacoWebpackConfig');
const { getLoadSiteConfig } = require('@fluentui/public-docsite-setup/scripts/getLoadSiteConfig');

Expand Down
2 changes: 1 addition & 1 deletion apps/react-18-tests-v8/jest.config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// @ts-check

const { resolveMergeStylesSerializer } = require('@fluentui/scripts/jest/jest-resources');
const getResolveAlias = require('@fluentui/scripts/webpack/getResolveAlias');
const { getResolveAlias } = require('@fluentui/scripts/webpack');

/**
* @type {import('@jest/types').Config.InitialOptions}
Expand Down
2 changes: 1 addition & 1 deletion apps/react-18-tests-v8/webpack.config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

const getResolveAlias = require('@fluentui/scripts/webpack/getResolveAlias');
const { getResolveAlias } = require('@fluentui/scripts/webpack');

module.exports = () => {
return {
Expand Down
3 changes: 1 addition & 2 deletions apps/ssr-tests/webpack.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
const resources = require('../../scripts/webpack/webpack-resources');
const getResolveAlias = require('../../scripts/webpack/getResolveAlias');
const { getResolveAlias, resources } = require('../../scripts/webpack');

module.exports = resources.createConfig('ssr-tests', false, {
entry: './test/test.js',
Expand Down
3 changes: 1 addition & 2 deletions apps/theming-designer/webpack.serve.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
const resources = require('../../scripts/webpack/webpack-resources');
const getResolveAlias = require('../../scripts/webpack/getResolveAlias');
const { getResolveAlias, resources } = require('../../scripts/webpack');

module.exports = resources.createServeConfig(
{
Expand Down
4 changes: 2 additions & 2 deletions apps/vr-tests/.storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const custom = require('@fluentui/scripts/storybook/webpack.config');
const { createStorybookWebpackConfig } = require('@fluentui/scripts/webpack');

module.exports = /** @type {import('../../../.storybook/main').StorybookBaseConfig} */ ({
stories: ['../src/**/*.stories.tsx'],
Expand All @@ -12,7 +12,7 @@ module.exports = /** @type {import('../../../.storybook/main').StorybookBaseConf
reactDocgen: false,
},
webpackFinal: config => {
return custom(config);
return createStorybookWebpackConfig(config);
},
addons: ['@storybook/addon-actions'],
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "none",
"comment": "refactor(scripts): separate /storybook and /webpack and introduce barell api within /webpack",
"packageName": "@fluentui/react",
"email": "martinhochel@microsoft.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "none",
"comment": "refactor(scripts): separate /storybook and /webpack and introduce barell api within /webpack",
"packageName": "@fluentui/react-monaco-editor",
"email": "martinhochel@microsoft.com",
"dependentChangeType": "none"
}
4 changes: 2 additions & 2 deletions packages/react-examples/.storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import custom from '@fluentui/scripts/storybook/webpack.config';
import { createStorybookWebpackConfig } from '@fluentui/scripts/webpack';
import * as path from 'path';
import { merge } from 'webpack-merge';

Expand All @@ -19,7 +19,7 @@ const config = {
reactDocgen: false,
},
webpackFinal: config => {
const customConfig = custom(config);
const customConfig = createStorybookWebpackConfig(config);

return merge(customConfig, {
module: {
Expand Down
10 changes: 2 additions & 8 deletions packages/react-examples/.storybook/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
{
"extends": "../../../tsconfig.base.json",
"extends": "../../../tsconfig.base.v8.json",
"compilerOptions": {
"jsx": "preserve",
"noEmit": true,
"allowJs": true,
"checkJs": true,
"allowSyntheticDefaultImports": true,
"baseUrl": "../../..",
"paths": {
"@fluentui/scripts/storybook/webpack.config": ["scripts/storybook/webpack.config.js"],
"@fluentui/font-icons-mdl2": ["packages/font-icons-mdl2/src/index.ts"],
"@fluentui/storybook": ["packages/storybook/src/index.ts"]
}
"allowSyntheticDefaultImports": true
},
"include": ["**/*.js"]
}
3 changes: 1 addition & 2 deletions packages/react-monaco-editor/webpack.serve.config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// @ts-check
const path = require('path');
const resources = require('../../scripts/webpack/webpack-resources');
const getResolveAlias = require('../../scripts/webpack/getResolveAlias');
const { getResolveAlias, resources } = require('../../scripts/webpack');
const { addMonacoWebpackConfig } = require('@fluentui/monaco-editor/scripts/addMonacoWebpackConfig');

const BUNDLE_NAME = 'demo-app';
Expand Down
3 changes: 1 addition & 2 deletions packages/react/webpack.codepen.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
const resources = require('../../scripts/webpack/webpack-resources');
const getResolveAlias = require('../../scripts/webpack/getResolveAlias');
const { getResolveAlias, resources } = require('../../scripts/webpack');

module.exports = resources.createServeConfig({
entry: './src/index.bundle.ts',
Expand Down
7 changes: 5 additions & 2 deletions packages/react/webpack.mf.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@
const path = require('path');
const fs = require('fs');
const webpack = require('webpack');
const getResolveAlias = require('@fluentui/scripts/webpack/getResolveAlias');
const { createServeConfig } = require('@fluentui/scripts/webpack/webpack-resources');
const {
getResolveAlias,
resources: { createServeConfig },
} = require('@fluentui/scripts/webpack');

const { webpackMerge } = require('just-scripts');

// These shared are known vendor dependencies for the module federation plugin
Expand Down
6 changes: 2 additions & 4 deletions scripts/cypress/cypress.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ import * as fs from 'fs';
import * as jju from 'jju';
import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin';

// use via CJS syntax which implies `any` because , as cypress doesn't properly resolves `esModuleInterop` setting
const applyV8WebpackConfig: (config: Configuration) => Configuration = require('../storybook/webpack.config');
import { createStorybookWebpackConfig } from '../webpack';

const isLocalRun = !process.env.DEPLOYURL;

Expand Down Expand Up @@ -39,14 +38,13 @@ const cypressWebpackConfig = (): Configuration => {
},
};


if (isV8()) {
// For v8, reuse the storybook webpack config helper to add required options for building v8,
// including the `resolve.alias` config that's currently REQUIRED to make tests re-run when a
// component file in @fluentui/react is modified while running in open mode.
// (This is different than the v9 config because v8 doesn't use tsconfig paths, so the only way
// it can respond to file edits is by using `resolve.alias`, which doesn't work with esbuild.)
return applyV8WebpackConfig(webpackConfig);
return createStorybookWebpackConfig(webpackConfig);
}

// For v9, use tsconfig paths and esbuild-loader
Expand Down
6 changes: 3 additions & 3 deletions scripts/storybook/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Storybook utils
# Storybook

This module contains solely v9 packages storybook tools.
Utils for storybook.

> **💡 NOTE:** only exception is `webpack.config.js` that is used for v8
> **NOTE:** This module contains solely v9 packages storybook tools.

# API

Expand Down
3 changes: 1 addition & 2 deletions scripts/storybook/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,5 @@
"compilerOptions": {
"types": ["node", "jest"]
},
"include": ["*"],
"files": ["../../typings/ignore-not-found-export-webpack-plugin/index.d.ts"]
"include": ["*"]
}
9 changes: 9 additions & 0 deletions scripts/webpack/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# webpack

Webpack utils and helpers for v8 (`@fluentui/react`) packages

## Usage

```js
import { resources, getResolveAlias } from '@fluentui/scripts/webpack';
```
6 changes: 1 addition & 5 deletions scripts/webpack/getResolveAlias.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,4 @@ function getResolveAlias(useLib, cwd) {
return alias;
}

module.exports = getResolveAlias;

if (require.main === module) {
console.log(getResolveAlias());
}
exports.getResolveAlias = getResolveAlias;
5 changes: 5 additions & 0 deletions scripts/webpack/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
...require('./storybook-webpack.config'),
...require('./getResolveAlias'),
resources: require('./webpack-resources'),
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ const IgnoreNotFoundExportWebpackPlugin = require('ignore-not-found-export-webpa
const path = require('path');
const webpack = require('webpack');

const findGitRoot = require('../monorepo/findGitRoot');
const getResolveAlias = require('../webpack/getResolveAlias');
const { findGitRoot } = require('../monorepo');
const { getResolveAlias } = require('./getResolveAlias');

/**
* Updates the given webpack config to include resolutions and other options for v8 packages.
* @param {webpack.Configuration} config webpack config, WILL BE MUTATED
* @returns {webpack.Configuration} the same object that was passed in
*/
module.exports = config => {
const createStorybookWebpackConfig = config => {
config.resolveLoader = {
...config.resolveLoader,
modules: [
Expand Down Expand Up @@ -103,3 +103,5 @@ module.exports = config => {

return config;
};

exports.createStorybookWebpackConfig = createStorybookWebpackConfig;
3 changes: 2 additions & 1 deletion scripts/webpack/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"compilerOptions": {
"types": ["node"]
},
"include": ["*"]
"include": ["*"],
"files": ["../../typings/ignore-not-found-export-webpack-plugin/index.d.ts"]
}
6 changes: 4 additions & 2 deletions scripts/webpack/webpack-resources.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const webpackVersion = /** @type {string} */ (require('webpack/package.json').ve

const { merge } = require('../utils');
const { getDefaultEnvironmentVars, findGitRoot } = require('../monorepo');
const getResolveAlias = require('./getResolveAlias');
const { getResolveAlias } = require('./getResolveAlias');

console.log(`Webpack version: ${webpackVersion}`);

Expand All @@ -33,7 +33,7 @@ const cssRule = {
*/
const target = ['web', 'es5'];

module.exports = {
const api = {
webpack,

/** Get the list of node_modules directories where loaders should be resolved */
Expand Down Expand Up @@ -314,6 +314,8 @@ module.exports = {
},
};

module.exports = api;

/**
*
* @param {string} bundleName
Expand Down