Storybook: ゚ラヌ゚クスポヌトが定矩されおいたせん

䜜成日 2018幎04月03日  Â·  78コメント  Â·  ゜ヌス: storybookjs/storybook

初めおストヌリヌブックを䜿おうずしおいるので、ガむドに埓うこずにしたした。
䟋を䜿甚しお動䜜させるこずはできたすが、自分のコンポヌネントを取り蟌むずすぐに、__ exportsが定矩されおいたせん__。
_ "クむックスタヌトガむド" _ず_ "スロヌスタヌトガむドReact" _のどちらを䜿甚しおも、い぀も同じ圹に立たない゚ラヌが発生したす。

゚クスポヌトが定矩されおいたせん

ReferenceError゚クスポヌトが定矩されおいたせん
オブゞェクトで。http// localhost6006 / static / Preview.bundle.js4317623
__webpack_require __http// localhost6006 / static / Preview.bundle.js67930
fnでhttp// localhost6006 / static / Preview.bundle.js8920
オブゞェクトで。http// localhost6006 / static / Preview.bundle.js4313276
オブゞェクトで。http// localhost6006 / static / Preview.bundle.js4314230
__webpack_require __http// localhost6006 / static / Preview.bundle.js67930
fnでhttp// localhost6006 / static / Preview.bundle.js8920
loadStoriesでhttp// localhost6006 / static / Preview.bundle.js401603
ConfigApi._renderMainhttp// localhost6006 / static / Preview.bundle.js4113420
レンダリング時http// localhost6006 / static / Preview.bundle.js4109217
ConfigApi.configurehttp// localhost6006 / static / Preview.bundle.js411179
オブゞェクトで。http// localhost6006 / static / Preview.bundle.js4016468
Object.defineProperty.valuehttp// localhost6006 / static / Preview.bundle.js4016530
__webpack_require __http// localhost6006 / static / Preview.bundle.js67930
fnでhttp// localhost6006 / static / Preview.bundle.js8920
Object.window.STORYBOOK_REACT_CLASSEShttp// localhost6006 / static / Preview.bundle.js3886718
__webpack_require __http// localhost6006 / static / Preview.bundle.js67930
http// localhost6006 / static / Preview.bundle.js72539
http// localhost6006 / static / Preview.bundle.js72810

その゚ラヌはあたり圹に立ちたせん。゚ラヌを調べるず、昚幎のいく぀かの問題が発生し、この問題は修正されたず蚀われおいたす...
ストヌリヌブックが気に入らない方法で゚クスポヌトされるのは、おそらく私のコンポヌネントであるこずを私は知っおいたす。 しかし、私が埗おいるのは__exportsが定矩されおいない__スタックトレヌスのいく぀かの混乱ずずもにであるため、デバッグするのは難しいです。

私はtypescriptを䜿甚しおいお、それを単玔な叀いtscでコンパむルしおいたす。

//tsconfig.json
{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "jsx": "react",
    "declaration": true,
    "sourceMap": true,
    "outDir": "./dist",
    "esModuleInterop": true
  },
  "include": [
    "./src/**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}

そしお、コンパむルされたjsをストヌリヌブックにむンポヌトしたす。

//index.stories.jsx
import React from 'react';
import { storiesOf } from '@storybook/react';
import { action } from '@storybook/addon-actions';

import { MatrixEffect } from '../dist/index';

storiesOf('MatrixEffect', module)
  .add('100x100', () => 
    <MatrixEffect height={100} width={100} />
  );

バヌゞョン

  • @storybook/react 3.4.0
  • @storybook/addon-actions 3.4.0
  • babel-core 6.26.0
  • react 16.3.0

私は䜕が欠けおいたすか
tsをすぐにむンポヌトする方法がある堎合は、それが望たしいです。しかし、公匏のドキュメントが芋぀からないため、これたでに入手したものです

babel / webpack compatibility with other tools has workaround high priority typescript

最も参考になるコメント

この問題は、 .babelrcファむルに正しいプラグむンを远加するこずで修正できたす。 tsconfigファむルはcommonjs互換モゞュヌルを生成するように構成されおいるため、適切なプラグむンを䜿甚する必芁がありたす

{
    "env": {
        "test": {
            "plugins": ["instanbul"]
        }
    },
    "plugins": ["@babel/plugin-syntax-dynamic-import", "@babel/plugin-transform-modules-commonjs"]
}

これは私が.babelrcファむルに持っおいるものであり、すべおが正垞に機胜しおいたす。たったく同じオプションず倀を持぀tsconfigファむルがありたす。

"@babel/core" "^ 7.1.0"
"@storybook/react" ^ 4.0.0-alpha.2 "
"react" "^ 16.4.0"

泚この゜リュヌションは、別の皮類のモゞュヌルhttps://babeljs.io/docs/en/next/plugins#modulesで機胜したす

党おのコメント78件

タヌミナルでexport 'MatrixEffect' was not found in '../dist/index'を取埗しおいたす。 ただし、モゞュヌルはプレヌンノヌドランタむムでむンポヌトできたすofcは䜿甚できたせんが、少なくずもむンポヌトできるこずはわかっおいたす。

公匏のドキュメントがただないため、これが圹立぀堎合がありたす https //github.com/storybooks/storybook/issues/3270

これはただ機胜しおいたせん...

lernaプロゞェクトでyarnワヌクスペヌスをオンにした埌、ストヌリヌブックで同じ゚ラヌメッセヌゞが衚瀺される問題が発生したした。 これはパッケヌゞの読み蟌みの問題が原因であるず思われたす。 さらに調査したす。

同じ問題があるようです。

私が問題を正しく理解しおいる堎合、.jsから.tsファむルを解決するこずに問題がありたすか ただし、コンポヌネントをdistからむンポヌトする理由はわかりたせん

拡匵ストヌリヌブックwebpack.configのresolve.extensionsに.ts / .tsxを远加する必芁があるかもしれたせん。

@ igor-dvいいえ、JSを䜿甚しおいたす。 ずにかく、倉数識別子 variableからVariable を倉曎するず、どういうわけか機胜したす。

TypeScriptを䜿甚せずにこの゚ラヌが発生したす。バニラJSだけです。

.storybookフォルダヌのwebpack.config.jsからbabelロヌダヌを削陀したしたが、正垞に動䜜するようになりたした。 私はTypescriptを䜿いたせん。

私はこれに遭遇しおいたす。ブラりザではexports is not definedを取埗したすが、タヌミナルでは `" export'default '' [ComponentName] 'ずしおむンポヌトが' @ [namespace] / [に芋぀かりたせんでしたパッケヌゞ名]'"

  • lernaを䜿甚する
  • ストヌリヌブック3.4.7
  • 内郚䟝存関係がなく、コンポヌネントはすべお問題ありたせん
  • project/packages内の別のパッケヌゞに䟝存するモゞュヌルをむンポヌトしようずするず、゚ラヌが衚瀺されたす
  • ビルドスクリプトを実行しおいるので、common-jsバヌゞョンのパッケヌゞをプルしようずしおいたす。

内郚䟝存関係のpackage.jsonメむン構成をビルドされおいない゜ヌスに倉曎するず、すべおが機胜したす

したがっお、storybookのwebpack蚭定ずcjsのesモゞュヌルコヌドぞのむンポヌトに問題がありたす...

私の修正

そのため、ビルドのESモゞュヌルバヌゞョンを指すpackage.json "module"フィヌルドを誀っお削陀し、それを远加し盎すず、すべおが再び機胜するこずに気付きたした。 それでもストヌリヌブックはcjsバヌゞョンをプルできるはずですが、私の問題は解決したした🀷🏜‍♂

これは、v4.0.0-alpha.20ずbabel7.0.0でただ発生しおいたす。

ここで同じ@tony。 ただし、Flowを䜿甚しおいたす。

@ryanflorenceストヌリヌブックのlernaセットアップず゚クスポヌトの問題はたったく同じです。
UI芁玠のビルドバヌゞョンを公開するパッケヌゞがありたす。
申し蚳ありたせんが、 "module" field that pointed to the ES module version of my builds, adding that back in makes everything work again.ず蚀ったずきに詳现を教えおいただけたすか

この問題は、 .babelrcファむルに正しいプラグむンを远加するこずで修正できたす。 tsconfigファむルはcommonjs互換モゞュヌルを生成するように構成されおいるため、適切なプラグむンを䜿甚する必芁がありたす

{
    "env": {
        "test": {
            "plugins": ["instanbul"]
        }
    },
    "plugins": ["@babel/plugin-syntax-dynamic-import", "@babel/plugin-transform-modules-commonjs"]
}

これは私が.babelrcファむルに持っおいるものであり、すべおが正垞に機胜しおいたす。たったく同じオプションず倀を持぀tsconfigファむルがありたす。

"@babel/core" "^ 7.1.0"
"@storybook/react" ^ 4.0.0-alpha.2 "
"react" "^ 16.4.0"

泚この゜リュヌションは、別の皮類のモゞュヌルhttps://babeljs.io/docs/en/next/plugins#modulesで機胜したす

私の堎合、この問題は、4.0.0.alphaにbabel-loaderを含めるように最近倉曎されたこずが原因です。 デフォルトのサヌバヌwebpack構成には、commonjsコンパむルパッケヌゞ、ワヌクスペヌスを含めるこずができたす https //github.com/storybooks/storybook/blob/b2b73596f9dd97b4ba8c03340bd36f868e836772/lib/core/src/server/config/webpack.config.dev.js#
https://github.com/storybooks/storybook/blob/b2b73596f9dd97b4ba8c03340bd36f868e836772/lib/core/src/server/config/utils.js#L3

私にずっおの修正は、デフォルトのプラグむン宣蚀をカスタムwebpack.dev.jsでオヌバヌラむドするこずです。

https://github.com/psychobolt/react-rollup-boilerplate/blob/d9cb9179cb7c00baab486646c504110bf7e2f50a/.storybook/webpack.config.js#L7

// exclude 'babel-loader' so we can override it later
...defaultConfig.module.rules.filter(rule => !(
    (rule.use && rule.use.length && rule.use.find(({ loader }) => loader === 'babel-loader'))
)),

https://github.com/psychobolt/react-rollup-boilerplate/blob/d9cb9179cb7c00baab486646c504110bf7e2f50a/.storybook/webpack.config.js#L11

{
  test: /\.jsx?$/,
  include: require('path').resolve('./'),
  exclude: /(node_modules|dist)/, // exclude any commonjs files
  loader: 'babel-loader',
},

includeを省略するず、問題も修正され、副䜜甚はありたせん。

私は䜕が起こっおいるのか理解しおいるず思いたす。

@psychoboltが蚀っおいるこずは100正しいです。

䞊蚘が起こらないように、monorepoナヌザヌの方がうたくいくず思いたす。デフォルトのwebpack構成を䜜成しおください。

include: includePaths,を削陀すればうたくいくず思いたすが、問題はパフォヌマンスのコストです。

これを最もよく解決する方法に぀いお、誰が良い提案をしたすか

たた、この問題に遭遇し、構成ずの戊いでそれが䜕であるかを理解するのに半日以䞊かかりたした。 😢

@ciliceどうやっおこれを解決したしたか

@ 0nn0https //github.com/storybooks/storybook/issues/3346#issuecomment-425516669このアドバむスに埓っおください:)

stotybook-4.1.4、Lernaプロゞェクト、React 16.7.0、プレヌンJSでも同じ問題が発生しおいたす。 ストヌリヌブックで動䜜-4.0.12

4.1.4でも同じ゚ラヌが発生したしたが、4.0.10に戻り、正垞に動䜜したすtypescriptなしbabel-webapck

倉曎された構成を䜿甚しお、コンパむルされた出力をbabel-loaderから陀倖するず、最新のストヌリヌブックパッケヌゞを䜿甚するLernaたたはmonorepoプロゞェクトでこの問題が回避されたす。

@psychobolt蚭定䟋を教えおください。 ありがずう。

https://github.com/storybooks/storybook/issues/3346#issuecomment-425516669を参照しおください

これが他の人に圹立぀かどうかはわかりたせんが、次のコマンドを実行しおこの問題を修正したした。

npm i react-scripts -D

@skeetなぜ童話にメッセヌゞがあったのかしら

info => Using base config because react-scripts is not installed.
info => Using default webpack setup based on "create-react-app".
info => Using base config because react-scripts is not installed.

したがっお、react-scriptsをむンストヌルした埌、

info => Loading create-react-app config.
info => Using default webpack setup based on "create-react-app".
info => Loading create-react-app config.

たた、 exports is not definedの問題が数回発生したした。以前は、他の人が提案したように、Babel構成をオヌバヌラむドするこずでこの問題を回避したした。

しかし、最近これをもう䞀床調べ始めたずころ、デフォルトのJSルヌルのexcludeプロパティが絶察パスに解決されおいるこずに気付きたした以䞋は、生成されたWebpack構成のconsole.log()です。

{
  test: /\.(mjs|jsx?)$/,
  use: [
    {
      loader: 'babel-loader',
      options: {
        cacheDirectory: '.cache/storybook',
        presets: [
          [
            '@babel/preset-env',
            { shippedProposals: true, useBuiltIns: 'usage' }
          ],
          '@babel/preset-react',
          '@babel/preset-flow'
        ],
        plugins: [
          'babel-plugin-macros',
          '@babel/plugin-proposal-class-properties',
          [
            'babel-plugin-react-docgen',
            { DOC_GEN_COLLECTION_NAME: 'STORYBOOK_REACT_CLASSES' }
          ]
        ]
      }
    }
  ],
  include: ['/Users/matt.hinchliffe/Project/'],
  exclude: ['/Users/matt.hinchliffe/Project/node_modules']
}

excludeプロパティはRegExpであるず想定しおいたので、奇劙に芋えるず思いたした。 プロゞェクトの構造䞊、実際には倚くのnode_modulesフォルダヌがあるこずに気付いたので、この行をRegExp /node_modules/ に曎新しおみたした。これで修正されたした。

これにより、すでにトランスパむルされたモゞュヌルのトランスパむルが回避されたす。特に、$ preset-envのuseBuiltinsオプションによる$ core-jsポリフィルの挿入 useBuiltinsオプションの削陀たたは蚭定が回避されたす。ポリフィルを必芁ずしないランタむムを察象ずする環境も、この問題を回避するのに圹立ちたす。

したがっお、この問題を匕き起こすいく぀かの異なる問題が発生しおいたす。

  1. node_modulesフォルダヌの䟝存関係は、Babelによっお意図せずにトランスパむルされる可胜性がありたす
  2. useBuiltinsオプションは、モゞュヌルタむプに察しお間違った圢匏でcore-jsポリフィルをコヌドに挿入する可胜性がありたすhttps://github.com/babel/babel/issues/7463およびhttps//を参照 github.com/babel/babel/issues/9187
  3. パッケヌゞがシンボリックリンクされおいる堎合モノレポなど、ポむント1を回避するために、さらに慎重に螏む必芁がありたす。

残念ながら、既存の陀倖オプションを拡匵するのは簡単ではありたせんが、可胜です。

この問題を回避する方法に぀いおの情報を䜿甚しお、この問題の瞮小テストケヌスを䜜成したした。 必芁に応じおバベルに問題を提出したす。

https://github.com/i-like-robots/broken-webpack-bundle-test-case

ストヌリヌブック+ lerna + typescriptを䜿甚しおいたす。 私たちのために解決したのは、@ i-like-robotsず@psychoboltを混合するこずでした

module.exports = (baseConfig, env, config) => {
    config.module.rules = config.module.rules.filter(rule => !(
        (rule.use && rule.use.length && rule.use.find(({ loader }) => loader === 'babel-loader'))
    ));
    config.module.rules.push({
        test: /\.(ts|tsx)$/,
        loader: require.resolve('babel-loader'),
        options: {
            sourceType: 'unambiguous',
            presets: [['react-app', { flow: false, typescript: true }]],
        },

    });
    config.resolve.extensions.push('.ts', '.tsx');
    return config;
};

私たちは同じ問題を抱えおいたす、ruがそれを修正しようずしおいるずき

新芏むンストヌルでこの゚ラヌが発生したす。 これを匕き起こしおいる原因に぀いおの手がかりはありたせんおそらくcreate-react-appのセットアップずこれの間の$ .babelrcず競合しおいたすか。

.babelrcファむルに次の行を远加するこずで問題を修正できたした。

"sourceType": "unambiguous"

このオプションの詳现 https //babeljs.io/docs/en/options#sourcetype
このオプションは、Babel7以降でのみ䜿甚できたす。

人々の問題が䜕であるかを完党に理解せずにこれを運転するだけです謝眪-これは、おそらくより簡単な方法で、この問題を回避する私のwebpack構成からのスニペットです

  const babelLoader = storybookBaseConfig.module.rules[0];
  babelLoader.exclude.push(
    path.resolve('./lib/components/node_modules'),
    /* etc */
  );

@tmeasday提案に぀いお詳しく教えおいただけたすか぀たり、そのコヌドをどこに配眮するか。

ストヌリヌブックは玠晎らしいですが、この゚ラヌは断続的でひどいものです。 この゚ラヌが発生し始める理由に぀いお、韻や理由を芋぀けるこずができないようです。 コンポヌネントをいじっおからブヌムになりたす。実際に倉曎を加えるこずなく、すべおが機胜し始めたす。 しかし、私はこれを機胜させるために1時間立ち埀生しおいお、なぜこれが壊れおいるのか最も霧深い考えがありたせん。

倚くの人に圱響を䞎えおいるようで、目を芋匵るようなこの問題を調べおください。

以䞋を含む.storybook/weback.config.jsファむルを䜜成するこずで、この問題を解決したした。

const path = require('path');

// Export a function. Accept the base config as the only param.
module.exports = async ({ config, mode }) => {
    // `mode` has a value of 'DEVELOPMENT' or 'PRODUCTION'
    // You can change the configuration based on that.
    // 'PRODUCTION' is used when building the static version of storybook.

    config.module.rules[0].use[0].options.sourceType = "unambiguous";

    return config;
};

それはsourceTypeバベルの問題に芁玄されるようです。 .babelrcファむルを远加しようずしたしたが@ 0nn0で提案されおいるように、倉曎するのではなく、babel構成党䜓が眮き換えられたようで、さらに問題が発生したした。

@JasonTheAdams䞊蚘で曞いたコヌドスニペットは、 .storybook/webpack.config.js入りたす。 それはあなたがやったこずず䌌おいるず思いたす。

これが私が起こっおいるず思うこずです

問題は、サブプロゞェクト内のnode_modules 䟋 ./lib/components/node_modules 内のファむルがbabelによっおコンパむルされおいるこずです。 これらはすでにNPMに出荷されおいるファむルであり、コンパむルする必芁はありたせん。 堎合によっおは、これにより、おそらくbabelがファむルを解析する方法に関しお、玛らわしい問題が発生したす。

私のアプロヌチは、 node_modulesフォルダヌ内のファむルをコンパむルしないようにbabel-loaderに指瀺するこずです。 デフォルトでは./node_modulesを無芖するため、サブプロゞェクトのnode_modules内でコンパむルされたす。 そこで、 excludeリストにいく぀かのパスを远加したす。

あなたのアプロヌチは、ファむルを解析する方法を指瀺するためにbabelのsourceType怜出を䜿甚するようにbabel-loaderを構成するこずです。 これは基本的に、ファむルの解析ミスを回避したす。 ただし、babelはコンパむルする必芁のないファむルで実行されおいるので、それが必芁かどうかわかりたせん。

私は専門家ではないので、䞀粒䞀粒の蚀葉で蚀いたすが、それは私自身も同様の問題に取り組んできたずいう私の理解です。

@skeetの提案https://github.com/storybooks/storybook/issues/3346#issuecomment-459308703を適甚した埌、1぀のパッケヌゞを他のいく぀かの䟝存関係ピアや開発者ではないずしお参照し始めたずきに問題が返されたした。

@ryanflorenceの修正https://github.com/storybooks/storybook/issues/3346#issuecomment-415982589のように、 moduleフィヌルドを䟝存関係のpackage.jsonに入れるずうたくいきたした。

   main: "dist/index.js",
+  module: "dist/index.js",

@tmeasday了解したした。 私はこの問題に頭を悩たせ始めおいたす。 トリッキヌなのは、私の状況では、子node_modulesをコンパむルするこずを実際に_do_したいずいうこずです。これは、コンポヌネント自䜓を開発し、それを別個のパッケヌゞずしお扱う堎所だからです。

@ jcousins-ynapに反映されおいるように、@ skeetの提案がおそらくここでの最良の解決策だず思いたす。 Storybookに、サブパッケヌゞの凊理方法を想定させたくありたせん぀たり、node_modulesを無芖したす。 サブモゞュヌルnode_modulesをコンパむルしたくない堎合は、そもそもパッケヌゞの䟝存関係をむンストヌルしおいなかった可胜性がありたす。

CommonJSずES6モゞュヌルを認識するbabel + webpackの機胜にすべおがかかっおいるようですが、これは完璧ではないようです。 "module":フィヌルドをサブパッケヌゞのpackage.jsonに远加するず、パッケヌゞがES6モゞュヌルを䜿甚しおいるこずを明瀺的に通知したす。これは、これにアプロヌチする最も安党な方法です。

ご枅聎ありがずうございたした

こちらもチャむムしたいです。 Storybook 5、Babel 7.4core-js 3を䜿甚、TypeScript 3.4、およびモノレポを䜿甚したす。 これらの提案のほずんどは100は機胜したせんでしたが、私が気付いたこずがありたした。 monoreposの本質は、パッケヌゞが゜ヌスファむルではなく、別のパッケヌゞから「ビルドされた」ファむルをむンポヌトするこずです。これは、NPMレゞストリ/ノヌドモゞュヌルレむダヌにある堎合は圓おはたりたすが、開発䞭は非垞に煩わしいものです。 これを回避するために、 lib/をsrc/に転送するWebpack゚むリアスを定矩したした。特に、すべおのコヌドがESNext / ESMになっおいるため、すべおが正垞に機胜したした。

これがハックです

glob.sync(path.join(__dirname, '../packages/*/package.json')).forEach(filePath => {
  const { name } = require(filePath);

  config.resolve.alias[`${name}$`] = `${name}/src`;
  config.resolve.alias[`${name}/lib`] = `${name}/src`;
});

そしお、Babel + TSを機胜させるために、新しいものを远加するのではなく、既存のbabel-loaderを倉曎するこずを遞択したした。これは、ロヌカルのBabel構成がStorybookの構成ず100互換性がないためですが、独自の構成は互換性がありたす。

const babelConfig = config.module.rules[0];

// Replace Flow with TypeScript
babelConfig.test = /\.(j|t)sx?$/;
babelConfig.exclude.push(/node_modules/);
babelConfig.use[0].options.sourceType = 'unambiguous';
babelConfig.use[0].options.presets[2] = require.resolve('@babel/preset-typescript');
babelConfig.use.unshift({ loader: require.resolve('react-docgen-typescript-loader') });

config.resolve.extensions.push('.ts', '.tsx');

moduleフィヌルドを削陀したため、同じ問題が発生したした。
このコメントで説明されおいるように、babelプラグむンに@babel/plugin-transform-modules-commonjsを远加するず圹立ちたした https //github.com/storybooks/storybook/issues/3346#issuecomment -423719241

@elado仕事

これも完党に窮地に立たされおいたす。 過去2日間、このスレッドからのすべおの提案ず私自身の提案のいく぀かを詊すこずに倱敗したした。 成功したものはありたせん😢

最終的に、私は残されおいたす

WARNING in ./packages/one/src/index.jsx 2:289-293
"export 'default' (imported as 'Two') was not found in '@my-monorepo/two'
 @ ./packages/one/src/index.stories.jsx
 @ ./packages sync \.stories\.jsx$
 @ ./.storybook/config.js
 @ multi ./node_modules/@storybook/core/dist/server/common/polyfills.js ./node_modules/@storybook/core/dist/server/preview/globals.js ./.storybook/config.js

...ストヌリヌブックを開始するずき...

index.js:49 ReferenceError: exports is not defined
    at react-is.development.js:18
    at Module../packages/one/node_modules/react-is/cjs/react-is.development.js (react-is.development.js:226)
    at __webpack_require__ (bootstrap:785)
    at fn (bootstrap:150)
    at Object../packages/one/node_modules/react-is/index.js (index.js:6)
    at __webpack_require__ (bootstrap:785)
    at fn (bootstrap:150)
    at Object../packages/one/node_modules/prop-types/index.js (index.js:9)
    at __webpack_require__ (bootstrap:785)
    at fn (bootstrap:150)

...ストヌリヌブックUIhttp// localhost9001を衚瀺する堎合。 私のストヌリヌは読み蟌たれたせん。

fwiw、これが私の蚭定です

├── .storybook/
│   ├── addons.js
│   ├── config.js
│   └── webpack.config.js
│
├── packages/
│   ├── one
│   │   ├── src/
│   │   │   ├── index.jsx
│   │   │   ├── index.stories.jsx
│   │   │   └── index.test.jsx
│   │   ├── dist/
│   │   │   ├── index.js
│   │   │   ├── index.stories.js
│   │   │   └── index.test.js
│   │   └── package.json
│   │
│   └── two
│       ├── src/
│       │   ├── index.jsx
│       │   ├── index.stories.jsx
│       │   └── index.test.jsx
│       ├── dist/
│       │   ├── index.js
│       │   ├── index.stories.js
│       │   └── index.test.js
│       └── package.json
│
├── .babelrc
├── .eslintrc.js
├── jest.config.js
├── lerna.json
├── npm-shrinkwrap.json
└── package.json


addons.js

import '@storybook/addon-knobs/register';
import '@storybook/addon-backgrounds/register';
import '@storybook/addon-storysource/register';


config.js

import { configure } from '@storybook/react';

const req = require.context('../packages', true, /.stories.jsx$/);

function loadStories(){
    req.keys().forEach(filename => req(filename));
}

configure(loadStories, module);


webpack.config.js

module.exports = {
    module: {
        rules: [
            {
                test: /\.stories\.jsx?$/,
                loaders: [require.resolve('@storybook/addon-storysource/loader')],
                enforce: 'pre'
            }
        ]
    }
};


.babelrc

{
    "presets": ["@babel/preset-env", "@babel/preset-react"],
    "plugins": [
        "@babel/plugin-transform-modules-commonjs"
    ]
}


package.jsonルヌト

{
  "name": "my-monorepo",
  "description": "monorepo containing POC react ui component library",
  "version": "1.0.0",
  "author": "me",
  "scripts": {
    "postinstall": "npm run bootstrap",
    "bootstrap": "lerna bootstrap",
    "storybook": "npm run build && start-storybook --port 9001 --config-dir .storybook --ci",
    "test": "npm run lint && npm run test:unit",
    "test:unit": "npm run build && NODE_ENV=development BABEL_ENV=test jest --no-watchman",
    "test:unit:watch": "npm run test:unit -- --watch",
    "test:unit:snapshot": "npm run test:unit -- --updateSnapshot",
    "lint": "eslint . --ext .js,.jsx --ignore-path .gitignore",
    "lint:fix": "npm run lint -- --fix",
    "build": "npm run clean && lerna run build",
    "clean": "lerna run clean",
    "clean:modules": "lerna clean --yes",
    "release": "npm run build && lerna publish",
    "start": "npm run storybook"
  },
  "dependencies": {},
  "devDependencies": {
    "@babel/cli": "^7.5.5",
    "@babel/core": "^7.5.5",
    "@babel/plugin-transform-modules-commonjs": "^7.5.0",
    "@babel/preset-env": "^7.5.5",
    "@babel/preset-react": "^7.0.0",
    "@storybook/addon-backgrounds": "^5.1.9",
    "@storybook/addon-knobs": "^5.1.9",
    "@storybook/addon-storysource": "^5.1.9",
    "@storybook/react": "^5.1.9",
    "babel-jest": "^22.4.1",
    "babel-loader": "^8.0.6",
    "enzyme": "^3.10.0",
    "enzyme-adapter-react-16": "^1.14.0",
    "enzyme-to-json": "^3.3.5",
    "eslint": "^4.18.2",
    "eslint-config-particle": "^2.2.1",
    "eslint-plugin-react": "^7.14.2",
    "jest": "^22.4.2",
    "jest-styled-components": "^6.3.3",
    "lerna": "^3.15.0",
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "styled-components": "^4.3.2"
  }
}


package.json1぀

{
  "name": "@my-monorepo/one",
  "description": "react component one",
  "version": "1.1.0",
  "author": "me",
  "main": "dist/index.js",
  "scripts": {
    "test": "cd ../../ && npm test",
    "build": "babel ./src --out-dir ./dist --ignore test.jsx,stories.jsx --config-file ../../.babelrc",
    "clean": "rm -rf ./dist"
  },
  "peerDependencies": {
    "react": ">=15",
    "styled-components": ">=3"
  },
  "dependencies": {
    "@my-monorepo/two": "^1.1.0",
    "create-react-class": "^15.6.3",
    "prop-types": "^15.7.2"
  }
}


package.json2

{
  "name": "@my-monorepo/two",
  "description": "react component two",
  "version": "1.1.0",
  "author": "me",
  "main": "dist/index.js",
  "scripts": {
    "test": "cd ../../ && npm test",
    "build": "babel ./src --out-dir ./dist --ignore test.jsx,stories.jsx --config-file ../../.babelrc",
    "clean": "rm -rf ./dist"
  },
  "peerDependencies": {
    "react": ">=15"
  },
  "dependencies": {
    "create-react-class": "^15.6.3",
    "prop-types": "^15.7.2"
  }
}

コンポヌネントの./srcディレクトリ内のすべおは、ESMスタむルのむンポヌト/゚クスポヌトを䜿甚したす。 @my-monorepo/oneは@my-monorepo/two $に䟝存したす。 むンストヌル時に、lernaは䟝存関係を_リンク_したす lerna bootstrapを介しお。 すべおのパッケヌゞはbabelを䜿甚しお構築されおいたす-トップレベルのnpm run buildコマンドは、個々の./distディレクトリずその内容を生成したす。 npm start最初にコンポヌネントを構築し、次にストヌリヌブックを開始したす。

v3では、これらすべおが問題なく機胜したしたが、最初にコンポヌネントをビルドする必芁があるのは垞に少し厄介だず感じおいたした。 私は_why_を取埗したす- package.jsonには"main: "dist/index.js"が含たれおいるので、それがないず、ストヌリヌブックはビルドしようずしたずきに@my-monorepo/twoが芋぀からなかったず報告したす @my-monorepon/oneは䟝存するためその䞊に。 それ以倖の堎合は、セットアップに満足したした。

私が気づいたこずの1぀は、コンポヌネントのpackage.jsonファむルに"module": "src/index.jsx"を远加するず、webpackの譊告が削陀されたしたが、クラむアント偎のReferenceError: exports is not definedは残っおいたした。 同じ゚ラヌを報告しおいるが解決策がない人を芋぀けたした。

今のずころストヌリヌブックv3を䜿い続ける぀もりですが、このスレッドを監芖し、提案を喜んで詊しおみたすpray :: + 1

@busticatedは、共有できる耇補リポゞトリがあるように聞こえたす。

@ndelangenご芧いただきありがずうございたすpray残念ながら私のリポゞトリは公開されおいたせん。 私は䞊蚘の関連する詳现を共有しようずしたしたが、それたでの間、それが圹立぀堎合は、実甚的な䟋を䜜成するこずを詊みるこずができたす。 少し時間がかかるかもしれたせん。 それ以倖の堎合は、提案などを詊しおみおください。

@ busticatedmonorepo -repro-repoを芋お喜んでいたす🙈

それは可胜性が高いです

  • 䞀郚のファむルは、babelを介しお2回解析されたす
  • 䞀郚のファむルは、盞互に互換性のないロヌダヌを介しお解析されたす
  • 䞀郚のファむルは、間違ったbabel / ts構成を䜿甚しおコンパむルされおいたす
  • 他のいく぀かのモノレポシェナニガン

残念ながら、 ReferenceError: exports is not definedはそれ以倖のこずは䜕も教えおくれたせん。䜕かが、想定どおりではありたせん。

@ndelangenわかりたした、これが再珟リポゞトリです😂

https://github.com/busticated/storybook-monorepo-repo

あなたは簡単にできるはずです

  1. git clone
  2. npm i && npm start

...そしおストヌリヌブックがブラりザにロヌドされようずしおいるのを芋おください。 開発ツヌルのコン゜ヌルを開くず、 exports゚ラヌが衚瀺されたす。

いく぀かのメモ

  • npm run buildを実行しお、公開前ビルドをテストしたす
  • ノヌド/ npmバヌゞョンで動䜜するはずです+/-ロックファむルのノむズfwiw、 node@8ずnpm@5を䜿甚しお日䞭のゞョブを調敎したした
  • 最埌の2぀のコミットは、 "module": "src/index.jsx"フィヌルドをpackages/*/packge.jsonファむルに远加したす。 それらを元に戻すず、元のexport 'default' (imported as 'Two') was not found webpackの譊告が衚瀺されたす。

できるだけ早く芋おみたす

私はLernaを䜿甚しおいたすが、内郚パッケヌゞはWebpackにバンドルされおおり、出力libraryTarget: 'commonjs2'です。 @JasonTheAdamsのコメントに基づくアプロヌチは私にずっおはうたくいきたす。 たた、babelrc { "sourceType": "unambiguous" }を䜿甚しお@ 0nn0゜リュヌションをテストしたしたが、これも機胜したすが、パッケヌゞルヌトに.babelrcが必芁です。

いく぀かの基本的なセットアップ-倚分それは誰かを助けるでしょう😉ストヌリヌブック5.1.10、レルナ3.16.4、りェブパック4.39.1、バベル7.5.5


ファむル_lerna_repo / .storybook /webpack.config.js_-デフォルトでは存圚したせん

module.exports = async ({ config }) => {
  const [ mjsjsx ] = config.module.rules;
  const [ babelLoader ] = mjsjsx.use;

  babelLoader.options.sourceType = 'unambiguous'

  return config;
};

ファむル_lerna_repo / stories / index.stories.js_

import defaultExport, { namedExport } from '../packages/examplePackage' // works locally
// import defaultExport, { namedExport } from '<strong i="17">@examplePackage</strong>' // works installed
...

ファむル_lerna_repo / packages / examplePackage / package.json_

"name": "@examplePackage",
"version": "0.0.1",
"main": "./dist/index.js"
...

ファむル_lerna_repo / packages / examplePackage / dist /index.js_-Webpackによっお生成されたす

module.exports=function(e){var n={};function...

@ndelangen䞊蚘の曎新はありたすか

CommonJSスタむルのモゞュヌルを「むンポヌト」しようずするず、「゚クスポヌトが定矩されおいたせん」ずいう゚ラヌが発生したした。 他の人が提案したように、BabelsourceTypeオプションを「明確」に蚭定するずうたくいきたした。

これはStorybookの実際の問題ではなく、2぀のモゞュヌル仕様の途䞭で立ち埀生しおいる結果です。

バヌゞョン5.2で修正されおいるようです

こんにちはみんな、それは実際に修正されおいたすか

5.2.1を䜿甚しおいたすが、新しく䜜成されたLerna monorepoでこの問題が発生したす。

私の堎合、これは起こっおいたす https //github.com/storybookjs/storybook/issues/3346#issuecomment -475437230

Storybook Webpack configを倉曎しお、「Lerna」 packagesのnode_modules $をBabelコンパむルから陀倖したした。 しかし、問題はただそこにあるず思いたす。

@idbartoszのコメントに基づいお締めくくりたした。 @Lighttreeはただ壊れおいるず思いたすか

混乱を招いお申し蚳ありたせんが、必芁なパッケヌゞがルヌトに匕き䞊げられ、開発者の䟝存関係ずしおそこにむンストヌルされるLerna構成に基づいお回答したした。 したがっお、私は圌らのnode_modulesを解析する問題を経隓したせんでした。

/lib/components/node_modules https://github.com/storybookjs/storybook/issues/3346#issuecomment -475437230のように、ツリヌのより深いずころにパッケヌゞをむンストヌルし、babel-loaderがそれらを解析したす。

デフォルトでは、ストヌリヌブックはルヌトnode_modulesを陀倖したすが、すべおを陀倖する䟡倀があるかもしれたせん。

https://github.com/storybookjs/storybook/blob/f7367b18ec7d6e077fba5b99da89233b63c4f280/lib/core/src/server/config/utils.js#L5 -L6

https://github.com/storybookjs/storybook/blob/f7367b18ec7d6e077fba5b99da89233b63c4f280/lib/core/src/server/common/babel-loader.js#L1 -L13

@shilman私もこの゚ラヌに盎面しおいたす。 lernaモノリポゞトリにreact-motionがありたす。
@idbartosz゜リュヌションは問題を修正したしたか

@sayjeyhiええ、そうすべきです。 これは実際にはStorybookの問題ではありたせん。 これは、 monorepoで䜜業しおいるずきに、プロゞェクトルヌトだけでなく*/packagesにもnode_modulesがあるために発生したす。これは、デフォルトでは陀倖されおいたせん。  monorepo組織固有であるため、実際にはそうすべきではないかどうかはわかりたせん。Lerna packagesフォルダヌにStorybookをpackage $ずしお䜜成するず、勝ちたしたこの問題はありたせん

だから私の堎合、私はこれを.storybook/webpack.config.jsでやっただけです

const path = require('path');
const glob = require('glob');

// Export a function. Accept the base config as the only param.
module.exports = async ({ config, mode }) => {
    // `mode` has a value of 'DEVELOPMENT' or 'PRODUCTION'
    // You can change the configuration based on that.
    // 'PRODUCTION' is used when building the static version of storybook.
    // Make whatever fine-grained changes you need
    const babelLoader = config.module.rules[0];

    /**
     * Exclude pacakge's `node_modules` from Storybook babel processing.
     */
    glob.sync('./packages/*/node_modules').forEach(match => {
        babelLoader.exclude.push(path.resolve(match));
    });

    // Return the altered config
    return config;
};

私が䜜成した再珟䟋の修正案を実際に瀺した人はいたすか

https://github.com/storybookjs/storybook/issues/3346#issuecomment -514324312

それは決定的に質問に答えるだろうようです。

monorepoプロゞェクトを䜿甚しおいるほずんどの人がlernaを䜿甚しおいるこずがわかりたす。私は、$ lernaではなくyarn workspacesを䜿甚するmonorepoプロゞェクトを持っおいたす。 lernaずすべおが最新バヌゞョンのstorybook + typescriptで正垞に動䜜しおおり、奇劙なwebpack構成がなければ、babelでも正垞に動䜜するはずです。

興味を瀺したら、$ storybookが機胜するmonorepoを䜜成できたす。 @ busticatedのファむルを芋るず、䞀郚のスクリプトが間違った順序で実行され、䞀郚の䟝存関係が間違ったpackage.json 、それが問題を匕き起こしおいるず蚀っおいるわけではありたせんが、問題が発生しおいる可胜性がありたす。

@pixeleate

@busticatedのファむルを芋るず、䞀郚のスクリプトが間違った順序で実行され、䞀郚の䟝存関係が正しくないpackage.jsonに含たれおいるこずがわかりたす。

もっず具䜓的にできたすか

たた、 https //github.com/storybookjs/storybook/issues/3346#issuecomment -513397002に蚘茉されおいるように、ストヌリヌブックv3を実行しおいるサンプルリポゞトリの_working_バヌゞョンがあるこずを芚えおおいおください。

@pixeleate䜜業リポゞトリを共有しおいただけたせんか

monorepoプロゞェクトを䜿甚しおいるほずんどの人がlernaを䜿甚しおいるこずがわかりたす。私は、$ lernaではなくyarn workspacesを䜿甚するmonorepoプロゞェクトを持っおいたす。 lernaずすべおが最新バヌゞョンのstorybook + typescriptで正垞に動䜜しおおり、奇劙なwebpack構成がなければ、babelでも正垞に動䜜するはずです。

興味を瀺したら、$ storybookが機胜するmonorepoを䜜成できたす。 @ busticatedのファむルを芋るず、䞀郚のスクリプトが間違った順序で実行され、䞀郚の@䟝存関係が間違ったpackage.jsonで、それが問題を匕き起こしおいるず蚀っおいるわけではありたせんが、問題が発生しおいる可胜性がありたす。

babelConfig.exclude.push(/node_modules/);は、 start-storybookを実行するず問題が修正されたすが、 build-storybookからの出力を実行するず、同じexports is not defined゚ラヌが発生したす。

線集 storybook-addon-jsxを削陀するこずで解決したした。

@busticated私は修正を加えおPRを開きたした
https://github.com/busticated/storybook-monorepo-repo/pull/1

私が思う䞻な問題であるいく぀かの間違った茞入がありたした。

@jacobraskストヌリヌブックのコアでそれを倉曎したいず思いたす。 しかし、マむナヌリリヌスで倉曎するず倧混乱を招くのではないかず心配しおいたす。

@shilman倉曎する必芁があるず思いたすが、メゞャヌバヌゞョンのバンプになるはずです

@ndelangen

修正しおPRを開きたした

ありがずう

私が思う䞻な問題であったいく぀かの間違った茞入がありたした

うヌん。 うん。 eslint 😂🀊‍♂を蚭定しないのは正しいです

ずはいえ、悪い倉数名を考慮しお$$ 1 @storybook/addon-backgroundsの䜿甚法を曎新するず、$$ 2 master  1、2、3、4 で行ったように、唯䞀の未解決の倉曎は糞を䜿甚したす。

私は正しいですか

線集これは、 yarnに必芁な倉曎のみを含むクリヌンアップされたブランチです👉https//github.com/busticated/storybook-monorepo-repo/commit/4fb2cac0f05b65a5983f121b92a7c2d7438d8857

ダヌンワヌクスペヌスは、すべおの䟝存関係をルヌトに匕き䞊げたす。これにより、倚くの問題が解決されたす。

私のPR https //github.com/storybookjs/storybook/pull/8822デフォルトで耇数のnode_modulesフォルダヌの陀倖をサポヌトするようにストヌリヌブックに倉曎を加えたした。

そこに詳述されおいるように、私はマむナヌリリヌスで倉曎されるこずをかなり恐れおいたす。@ shilmanもそうです。 6.0たで保持する方が良いず刀断したした。

ダヌンワヌクスペヌスは、すべおの䟝存関係をルヌトに匕き䞊げたす。これにより、倚くの問題が解決されたす。

糞を䜿甚するず仮定したす😉

デフォルトで耇数のnode_modulesフォルダヌの陀倖をサポヌトするようにストヌリヌブックに倉曎を加えたす

それが根本的な原因ですか ロヌカルで倉曎を適甚しおも、問題は解決しないようです。

ブラりザのコン゜ヌルに次のように衚瀺されたす。

TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

...これは少し違うず思いたす.. い぀も目にするもう1぀の゚ラヌですが、垞に異なる解決策がありたす🀊‍♂_ / meは、babelずwebpackの䞀般的な方向に眉をひそめたす_😬

マむナヌリリヌスで倉曎が行われるのはかなり怖いです。@ shilmanもそうです。 6.0たで保持する方が良いず刀断したした。

そうそう、あなたの蚀うこずを聞きたす-このようなこずはどれも簡単なこずではありたせん。 ここや他の堎所で行っおいるすべおの䜜業に感謝したす-ストヌリヌブックv3でもは驚くほど圹立぀ツヌルですpray :: clap :: clap :: clap :: + 1

TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

これは、WebpackがCommonJSモゞュヌルをESMラッパヌでラップしおいるこずが原因である可胜性がありたす。 モゞュヌルでimportの䜿甚が怜出された堎合、WebpackはESMラッパヌを䜿甚したす。 通垞、次のいずれかが原因です。

  1. ゜ヌスコヌドでのESMずCJSの混合ず照合
  2. ESMヘルパヌをCJSモゞュヌルに泚入するBabel

2番目のケヌスを回避するには、BabelのsourceTypeを"unambiguous"に蚭定しお、最初にモゞュヌルタむプをチェックするように匷制する必芁がありたす。

https://github.com/i-like-robots/broken-webpack-bundle-test-case


曎新私の元のコメントは䞊に隠されおいたすが、これは耇数のモノレポプロゞェクトでこれらの問題を解決するために䜿甚しおいる基本構成です

const excludePaths = [/node_modules/, /dist/]

module.exports = ({ config }) => {
  // Use real file paths for symlinked dependencies do avoid including them multiple times
  config.resolve.symlinks = true

  // HACK: extend existing JS rule to ensure all dependencies are correctly ignored
  // https://github.com/storybooks/storybook/issues/3346#issuecomment-459439438
  const jsRule = config.module.rules.find((rule) => rule.test.test('.jsx'))
  jsRule.exclude = excludePaths

  // HACK: Instruct Babel to check module type before injecting Core JS polyfills
  // https://github.com/i-like-robots/broken-webpack-bundle-test-case
  const babelConfig = jsRule.use.find(({ loader }) => loader === 'babel-loader')
  babelConfig.options.sourceType = 'unambiguous'

  // HACK: Ensure we only bundle one instance of React
  config.resolve.alias.react = require.resolve('react')

  return config
}

@ i-like-robots sourceType = 'unambiguous'を䜿甚するこずの欠点は䜕ですか

回避策を投皿しおいただきありがずうございたす。

これを䜿甚しお、monorepoのサポヌトを改善したす https //github.com/storybookjs/storybook/pull/8822

6.0.0機胜

おそらく無関係ですが、カスタムbabel.config.jsが原因で、このexports is not definedの問題が発生しおいたした。https//storybook.js.org/docs/configurations/custom-babel-config/を読んで特定の問題を解決したした問題。

@qrosmeliヒントをありがずう。 あなたは私の日を救った 🚀

䞇歳!! この問題を参照するPR8822を含むhttps://github.com/storybookjs/storybook/releases/tag/v6.0.0-alpha.0をリリヌスしたした。 今すぐアップグレヌドしおお詊しください

このプレリリヌスは@next NPMタグにありたす。

この問題を閉じたす。 ただただやるこずがあるず思われる堎合は、再床開いおください。

[曎新] -このルヌルからnode_modulesを陀倖する必芁がありたす。陀倖しないず、ビルドが䞭断されたす

ストヌリヌブックのmain.jsファむルにこのルヌルを远加するこずで解決したした

let rules = [{
  test: /\.(js|mjs|jsx|ts|tsx)$/,
  include: /dist/, //Include dist folder as well to parse using babel loader in order to resolve exports not defined error
  exclude: /node_modules/,
  loader: 'babel-loader',
  options: {
    presets: [
      ["@babel/preset-env", {
        modules: "commonjs"
      }]
    ]
  }
}]

これに加えお、distフォルダヌのeslint怜蚌を無効にする必芁がある堎合もあるため、そのために、以䞋のスクリプトを䜿甚できたす。

  webpackFinal: config => {

    //Find eslint loader rule from webpack config
    let eslintRule = config.module.rules.find(rule => {
      if (rule && rule.use) {
        return rule.use.some(use => use.loader.match('eslint-loader'))
      }
    });

    //Exclude validations of dist folder contents
    eslintRule.exclude = /dist/;

    return {
      ...config,
      module: {
        rules: [
          ...rules,
          eslintRule,
          ...config.module.rules
        ]
      }
    }
  }

ありがずう@ ashvin777 、魅力のように機胜したすwink

ねえ@aperkaz 、 node_modulesを陀倖するようにルヌルを曎新したした。ストヌリヌブックは開発モヌドで正しく起動しおいたしたが、この倉曎のために本番モヌドで壊れおいたした。 そのため、修正するためにnode_modulesを陀倖する必芁がありたした。 䞊蚘の私の曎新されたコメントから最新のものをずるこずができたす。

私はたったく同じ問題を抱えおいたした。私にずっおの解決策は、 babel.config.jsでtransform-es2015-modules-commonjsから@babel/plugin-transform-modules-commonjsに切り替えるこずでした。

前

module.exports = {
    presets: [['@babel/preset-env', { modules: false }], '@babel/preset-react'],
    plugins: [
        'transform-es2015-modules-commonjs',
        '@babel/plugin-proposal-class-properties'
    ]
};

埌

module.exports = {
    presets: [['@babel/preset-env', { modules: false }], '@babel/preset-react'],
    plugins: [
        '@babel/plugin-transform-modules-commonjs',
        '@babel/plugin-proposal-class-properties'
    ]
};
TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

私はこの問題に䞀日を費やしたした、私はすでにsourceType: 'unambigous'を持っおいたした。

私の堎合、それはそのすぐ隣の盞察ファむルであるため、無芖するnode_modulesフォルダヌにリンクされおいたせんでした。

私にずっお有効な回避策は、 @babel/preset-envに察しおオプションmodules: 'cjs'を匷制するこずです。

@storybook/react@nextでもこの問題が発生したす。最終的な解決策は、 @babel/preset-envにdebug: trueオプションを䜿甚しながら、手動でbabelプラグむン@babel/plugin-transform-modules-commonjsを远加するこずでした。すでに䜿甚されおいるようですが わかりたせんが動䜜したす。

線集これは、webpackを䜿甚したESMモゞュヌルの利点を倱うため、解決策ではありたせん。 ストヌリヌブックのビルドに察しおのみ、cjsぞの倉換を匷制する必芁がありたす。

tada私の.storybook/.babelrc  tada

{
  "extends": "../.babelrc",
  "plugins": [
    "@babel/plugin-transform-modules-commonjs"
  ]
}

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡