mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Summary: The playground currently has limited support for Flow files--it tries to parse them if the // flow sigil is on the fist line, but this is often not the case for files one would like to inspect in practice. more importantly, component syntax isn't supported even then, because it depends on the Hermes parser.
This diff improves the state of flow support in the playground to make it more useful: when we see `flow` anywhere in the file, we'll assume it's a flow file, parse it with the Hermes parser, and disable typescript-specific features of Monaco editor.
ghstack-source-id: b99b1568d7
Pull Request resolved: https://github.com/facebook/react/pull/30150
50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const MonacoWebpackPlugin = require("monaco-editor-webpack-plugin");
|
|
const path = require("path");
|
|
|
|
const nextConfig = {
|
|
reactStrictMode: true,
|
|
webpack: (config, options) => {
|
|
// Load *.d.ts files as strings using https://webpack.js.org/guides/asset-modules/#source-assets.
|
|
config.module.rules.push({
|
|
test: /\.d\.ts/,
|
|
type: "asset/source",
|
|
});
|
|
|
|
// Monaco Editor
|
|
if (!options.isServer) {
|
|
config.plugins.push(
|
|
new MonacoWebpackPlugin({
|
|
languages: ["typescript", "javascript"],
|
|
filename: "static/[name].worker.js",
|
|
})
|
|
);
|
|
}
|
|
|
|
config.resolve.alias = {
|
|
...config.resolve.alias,
|
|
"react-compiler-runtime": path.resolve(
|
|
__dirname,
|
|
"../../packages/react-compiler-runtime"
|
|
),
|
|
};
|
|
config.resolve.fallback = {
|
|
fs: false,
|
|
path: false,
|
|
os: false,
|
|
};
|
|
|
|
return config;
|
|
},
|
|
|
|
transpilePackages: ["monaco-editor"],
|
|
};
|
|
|
|
module.exports = nextConfig;
|