Storybook: μ›ΉνŒ© 4 지원?

에 λ§Œλ“  2018λ…„ 02μ›” 21일  Β·  48μ½”λ©˜νŠΈ  Β·  좜처: storybookjs/storybook

Webpack 4λŠ” 잠재적으둜 λΉŒλ“œ ν”„λ‘œμ„ΈμŠ€μ˜ 속도λ₯Ό 높일 수 μžˆλŠ” λ©°μΉ  후에 μΆœμ‹œλ©λ‹ˆλ‹€.

webpack 4λ₯Ό μœ„ν•œ μŠ€ν† λ¦¬λΆμ΄ μ€€λΉ„λ˜μ–΄ μžˆμŠ΅λ‹ˆκΉŒ?

μŠ€ν† λ¦¬λΆκ³Ό ν•¨κ»˜ ts-loader 및 webpack 베타 버전을 μ‚¬μš©ν•˜λ €κ³  ν–ˆμ§€λ§Œ μŠ€ν† λ¦¬λΆμ΄ 아직 곧 μΆœμ‹œλ  webpack 4와 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

I tried to use:
"ts-loader": "^4.0.0-beta.0",
"webpack": "^4.0.0-beta.2",
and I am running into problems:
`Module build failed: TypeError: Cannot set property 'tsLoaderFileVersion' of undefined at successLoader `
BREAKING CHANGE babel / webpack compatibility with other tools dependencies

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

Webpack 4λ₯Ό μ‚¬μš©ν•˜λŠ” ν”„λ‘œμ νŠΈμ—μ„œ Storybook을 μ‹€ν–‰ν•  λ•Œ μ•„λž˜ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

node_modules/webpack/lib/DefinePlugin.js:42
        compiler.hooks.compilation.tap(
                       ^

TypeError: Cannot read property 'compilation' of undefined

이것은 Webpack 4λ₯Ό μ§„ν–‰ν•˜λŠ” 것을 λ°©ν•΄ν•©λ‹ˆλ‹€.

λͺ¨λ“  48 λŒ“κΈ€

Storybook은 webpack을 직접 μ’…μ†μ„±μœΌλ‘œ μ‚¬μš©ν•©λ‹ˆλ‹€. λ”°λΌμ„œ ν•΄λ‹Ή 버전을 μ‚¬μš©μž μΈ‘μ—μ„œ ꡐ체할 수 μ—†μŠ΅λ‹ˆλ‹€. λŒ€μ‹  μ €μž₯μ†Œλ₯Ό λΆ„κΈ°ν•˜κ³  ν•΄λ‹Ή νŒ¨ν‚€μ§€λ₯Ό 베타 λ²„μ „μœΌλ‘œ μ—…λ°μ΄νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€. 일이 잘되면 μ•ˆμ •ν™”λ˜λŠ” λŒ€λ‘œ μ—…κ·Έλ ˆμ΄λ“œλ₯Ό ν•  수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

아직 ν•˜κ³  μžˆλŠ” μ‚¬λžŒμ΄ μžˆλ‚˜μš”?

κ·Έλ ‡κ²Œ ν•˜λ©΄ μŠ€ν† λ¦¬λΆμ˜ 획기적인 λ³€ν™”κ°€ 될 κ²ƒμž…λ‹ˆλ‹€. λ¬Έμ œλŠ” μ‚¬μš©μž μ •μ˜ μ›ΉνŒ© ꡬ성에 ν”ŒλŸ¬κ·ΈμΈμ΄ 포함될 수 있고 μ›ΉνŒ© 4λ₯Ό λŒ€μƒμœΌλ‘œ ν•˜λŠ” ν”ŒλŸ¬κ·ΈμΈμ΄ λŒ€λΆ€λΆ„μ˜ 경우(항상 그런 것은 μ•„λ‹ˆμ§€λ§Œ) μ›ΉνŒ© 3κ³Ό μ—­ν˜Έν™˜λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

정말 κ°μ‚¬ν•©λ‹ˆλ‹€!

ν˜„μž¬ μŠ€ν† λ¦¬λΆμ΄ λͺ…μ‹œμ μœΌλ‘œ webpack==3.11.0 λ₯Ό μš”κ΅¬ν•˜κ³  node_modules μ„œλΈŒλ””λ ‰ν† λ¦¬μ— Webpack 3의 개인 사본을 κ°€μ Έμ˜€μ§€λ§Œ dotenv-webpack 도 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— ν˜„μž¬ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

이제 dotenv-webpack λŠ” webpack==^1 || ^2 || ^3 || ^4 의 ν”Όμ–΄ 쒅속성을 λ‚˜μ—΄ν•˜λ―€λ‘œ npm λŠ” λ‹€μŒ λŒ€μ‹  Webpack 4 μ˜†μ— μžˆλŠ” κΈ°λ³Έ node_modules 에 μ„€μΉ˜ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. @storybook/react/node_modules μ•„λž˜μ˜ Webpack 3으둜.

이제 μŠ€ν† λ¦¬λΆμ΄ dotenv-webpack λ₯Ό λ‘œλ“œν•˜μžλ§ˆμž μ°¨λ‘€λ‘œ Webpack 4κ°€ ν˜ΈμΆœλ©λ‹ˆλ‹€.

μœ„μ˜ λ‚΄μš©μ΄ npm 의 λ²„κ·Έλ‘œ 인해 λ°œμƒν–ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. https://github.com/npm/npm/issues/19944

ν˜„μž¬ 저희 μͺ½μ—μ„œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μ°¨λ‹¨ν•˜λŠ” μ²΄ν¬λ¦¬μŠ€νŠΈκ°€ https://github.com/storybooks/storybook/pull/3148 둜 μ΄λ™ν–ˆμŠ΅λ‹ˆλ‹€.

Webpack 4λ₯Ό μ‚¬μš©ν•˜λŠ” ν”„λ‘œμ νŠΈμ—μ„œ Storybook을 μ‹€ν–‰ν•  λ•Œ μ•„λž˜ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

node_modules/webpack/lib/DefinePlugin.js:42
        compiler.hooks.compilation.tap(
                       ^

TypeError: Cannot read property 'compilation' of undefined

이것은 Webpack 4λ₯Ό μ§„ν–‰ν•˜λŠ” 것을 λ°©ν•΄ν•©λ‹ˆλ‹€.

https://github.com/storybooks/storybook/pull/3148 μ—…λ°μ΄νŠΈλ₯Ό ꡬ독할 수 μžˆμŠ΅λ‹ˆλ‹€.

@TomFoyster λ‚˜λ„ 같은 λ¬Έμ œκ°€ μžˆμ—ˆλŠ”λ° npm install yarn λ₯Ό μ‚¬μš©ν•˜μ—¬ μž„μ‹œλ‘œ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” 해결될 것 κ°™μŠ΅λ‹ˆλ‹€.

v4.0.0-alpha.0 둜 μΆœμ‹œλ¨

@Hypnosphi v4.0.0-alpha.0 둜 μ—…λ°μ΄νŠΈν•œ ν›„ λ‚΄ μŠ€ν† λ¦¬λΆ 컴파일이 μ€‘λ‹¨λ˜κ³  compat ν”ŒλŸ¬κ·ΈμΈμ—μ„œ 멈μΆ₯λ‹ˆλ‹€. 95%λ₯Ό λ„˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

⚑️ frontend@feature/data-integration ~ npm run storybook

> [email protected] storybook /Users/will/projects/frontend
> start-storybook -p 6006 -s ./assets

info @storybook/react v4.0.0-alpha.0
info
info => Loading static files from: /Users/will/projects/frontend/assets .
info => Loading custom .babelrc
info => Loading custom webpack config (extending mode).
 10% building modules 2/2 modules 0 activeβ„Ή ο½’wdmο½£: wait until bundle finished:
(node:85321) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
 95% emitting unnamed compat plugin

μ•ŒνŒŒ λΉŒλ“œλ‘œ μ—…κ·Έλ ˆμ΄λ“œν•˜κΈ° 전에 @TomFoyster λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

npm yarn λ₯Ό μ‚¬μš©ν•˜μ—¬ μ§€κΈˆ μ»΄νŒŒμΌν•  수 μžˆμ§€λ§Œ μ΅œμ‹  λΉŒλ“œλ‘œ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

v4.0.0-alpha.0 이 μ†μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이후 μ•ŒνŒŒλ₯Ό μ‚¬μš©ν•˜μ„Έμš”(예: v4.0.0-alpha.3 ).

rm -rf node_modules ν•˜κ³  yarn install λ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. storybook v3.4.1 및 webpack v4.6.0 와 ν•¨κ»˜ μž‘λ™

특히 yarn은 μŠ€ν† λ¦¬λΆ 쒅속성을 λ³„λ„λ‘œ μ„€μΉ˜ν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€.

v4.0.0-alpha.3 도 μ‹œλ„ν–ˆμ§€λ§Œ @storybook/[email protected] κ°€ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@ankibalyan μ–΄λ–€ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆκΉŒ? 이 μ• λ“œμ˜¨μ€ 곡식 예제 μ—μ„œ μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@danmakenoise 의 μ†”λ£¨μ…˜μ€ μ €μ—κ²Œ 효과적이며 npm λŒ€μ‹  원사λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 쒋은 것 κ°™μŠ΅λ‹ˆλ‹€.

참고둜 λ‹€λ₯Έ μ‚¬λžŒμ΄ yarn npm 둜 μ„€μΉ˜ν•˜λ €κ³  ν•˜λ©΄ v4.0.0-alpha.3 κ°€ μ§€κΈˆ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€ πŸ‘

4.6.0 및 원사 μž‘μ—… κ³΅κ°„μ—μ„œ TomFoyster와 λ™μΌν•œ 였λ₯˜ λ°œμƒ

@AlastairTaft κ·€ν•˜μ˜ 경우 μ–΄λ–€ μŠ€ν† λ¦¬λΆ λ²„μ „μž…λ‹ˆκΉŒ?

μ£„μ†‘ν•©λ‹ˆλ‹€. μ €λŠ” Story 책에 μ—†μŠ΅λ‹ˆλ‹€. 이것이 였λ₯˜μ— λŒ€ν•œ μœ μΌν•œ Google μ‘°νšŒμˆ˜μ˜€μŠ΅λ‹ˆλ‹€.

μ—…λ°μ΄νŠΈ: 제 κ²½μš°μ—λŠ” μ½˜μ†”μ—μ„œ webpack λ₯Ό μ‹€ν–‰ν•  λ•Œ TomFoyster의 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. λŒ€μ‹  npx webpack λ₯Ό μ‹€ν–‰ν•˜λ©΄ ν•΄κ²°λ©λ‹ˆλ‹€.

yarn κ°€ 이것에 λŒ€ν•œ μ’…μ†μ„±μ΄λΌλŠ” 것은 μ•„μ£Ό 어리석은 μΌμž…λ‹ˆλ‹€.

νŽΈμ§‘: npm i -g @storybook/cli@alpha 이 이 문제λ₯Ό μˆ˜μ •ν•©λ‹ˆλ‹€ πŸ‘

@storybook/cli@alpha 및 @storybook/react@alpha (Reactλ₯Ό μ‚¬μš©ν•˜λŠ” 경우)λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μŠ€ν† λ¦¬λΆ λ‘œλ“œ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 도움이 λ˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

@Hypnosphi v4.0.0-alpha.3 webpack ^4.8.1 $ 와 ν•¨κ»˜ μ‚¬μš©ν•˜λ €κ³  ν•©λ‹ˆλ‹€.
μ•„λž˜μ— μ–ΈκΈ‰λœ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.
Error: Cannot find module '@storybook/react/dist/server/config/defaults/webpack.config.js'
μ–΄λ–€ 포인터?

@anujparikh λ‚΄κ°€ 틀릴 수 μžˆμ§€λ§Œ μ§€κΈˆμ€ λ‹€μŒμœΌλ‘œ λŒ€μ²΄λ˜μ—ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

const { createDefaultWebpackConfig } 
 = require('@storybook/core/dist/server/config/defaults/webpack.config.js');

@storybook/reactλŠ” 이제 @storybook/core λ•Œλ¬Έμ— 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ? @pollen8

Storybook용 Webpack κ΅¬μ„±μ—μ„œ webpack.DefinePlugin() λ₯Ό μ‚¬μš©ν•˜λ €κ³  ν•  λ•Œ @TomFoysterκ°€ https://github.com/storybooks/storybook/issues/3044#issuecomment -371071093 μ—μ„œ μ–ΈκΈ‰ν•œ 것과 λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμ§€λ§Œ v4.0.0-alpha.14 둜 μ—…κ·Έλ ˆμ΄λ“œν•  λ•Œ ν•΄κ²°ν•  수 μ—†μ—ˆλ˜ λ§Žμ€ μƒˆλ‘œμš΄ 문제.

λ‹€μ†Œ λͺ»μƒκΈ΄ 해결책은 Webpack 4 쒅속성 λŒ€μ‹  .storybook/webpack.config.js 에 Storybook의 Webpack 3 쒅속성을 μš”κ΅¬ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

// .storybook/webpack.config.js

const webpack = require('webpack');
// ^ Causes the TypeError: Cannot read property 'compilation' of undefined

const webpack = require('../node_modules/@storybook/core/node_modules/webpack');
// ^ Works (for us...)

@hanshenrik -- μ™„μ „ν•œ webpack.config.js 파일의 예λ₯Ό 보여 μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? κ·€ν•˜μ˜ 라인이 λ‚΄ ꡬ성에 μ–΄λ–»κ²Œ λ§žλŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

const path = require("path");

module.exports = (baseConfig, env, config) => {
  config.module.rules.push({
    test:  /\.(ts|tsx)$/,
    use: [
      require.resolve("awesome-typescript-loader"),
      require.resolve("react-docgen-typescript-loader"),
    ],
  },
  {
    test: /\.scss$/,
    use: [
      "style-loader", "css-loader", "sass-loader"
    ]
  });

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

  return config;
};

@adyz 그래!

const path = require('path');
const webpack = require('../node_modules/@storybook/core/node_modules/webpack');

module.exports = {
  module: {
    rules: [
      // ...
    ],
  },

  plugins: [
    new webpack.DefinePlugin({ // <-- Uses DefinePlugin from the imported webpack library
      HELLO: 'world',
    }),
  ],

  resolve: {
    // ...
  },
};

ν•˜μ§€λ§Œ webpack 라이브러리의 ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” κ²½μš°μ—λ§Œ ν•„μš”ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” DefinePlugin 을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄ ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€.

DefinePluginκ³Ό κ΄€λ ¨ν•˜μ—¬ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν•˜κ³  μžˆμ§€λ§Œ λ‚΄ .storybook/webpack.config.js νŒŒμΌμ—λŠ” DefinePlugin에 λŒ€ν•œ μ°Έμ‘°κ°€ μ „ν˜€ μ—†μœΌλ©° ν•΄λ‹Ή μ°Έμ‘°λŠ” λ‚΄ μ£Ό ν”„λ‘œμ νŠΈμ˜ webpack.config.jsμ—λ§Œ μžˆμŠ΅λ‹ˆλ‹€. Storybook이 .storybook 폴더 μ•ˆμ— 자체 파일이 μžˆμ„ λ•Œ 메인 νŒŒμΌμ— μ•‘μ„ΈμŠ€ν•˜λŠ” μ΄μœ κ°€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@storybook/ react@alpha νŒ¨ν‚€μ§€λ‘œ μ—…κ·Έλ ˆμ΄λ“œλ₯Ό μ‹œλ„ν–ˆλŠ”λ° μ„œλ²„λ₯Ό μ‹œμž‘ν•˜λ €κ³  ν•  λ•Œ λ‹€λ₯Έ 문제의 λ°©λŒ€ν•œ λͺ©λ‘μ΄ ν‘œμ‹œλ©λ‹ˆλ‹€. 더 ν₯미둜운 것 쀑 ν•˜λ‚˜:

ERROR in ./node_modules/@company/styled-theme/build/index.js Module build failed (from ../node_modules/babel-loader/lib/index.js): TypeError: Plugin 2 specified in "C:\\sources\\demoapp\\node_modules\\@company\\styled-theme\\.babelrc" was expected to return a function but returned "undefined" at Function.normalisePlugin (C:\sources\demoapp\node_modules\babel-core\lib\transformation\file\options\option-manager.js:148:15)

λ™μΌν•œ ν”„λ‘œμ νŠΈλ₯Ό Yarn으둜 κ΅μ²΄ν•˜λ©΄ λͺ¨λ“  것이 문제 없이 μž‘λ™ν•¨μ„ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

이 μˆ˜μ • 사항을 Vue-CLI 3 ν”„λ‘œμ νŠΈμ— μ μš©ν•˜λŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

@davek1979 npm install @storybook/vue@alpha 이 νŠΈλ¦­μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€!

μ–΄μ œ Yarn μˆ˜μ • 사항을 λ‹€μ‹œ ν™•μΈν•œ λ‹€μŒ node_modules 폴더λ₯Ό μ§€μš°κ³  npm install μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. DefinePlugin에 λŒ€ν•œ 였λ₯˜κ°€ λ°˜ν™˜λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‚΄ node_modules 폴더λ₯Ό λ‹€μ‹œ μ§€μš°κ³  버전을 @storybook/ react@alpha 둜 λ³€κ²½ν•œ λ‹€μŒ npm install λ‹€μ‹œ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 그것은 νŠΈλ¦­μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. μ €μ—κ²Œ νš¨κ³Όκ°€ μžˆμ—ˆλ˜ 것 같은 μ•ŒνŒŒ 버전은 v4.0.0-alpha.16μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

κΈ°λ³Έ ꡬ성을 직접 ν•„μš”λ‘œ ν•˜λŠ” @anujparikh @pollen8 은 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ‚¬μš©ν•  λ•Œ μ‚¬μš© 쀑지 λ©”μ‹œμ§€κ°€ ν‘œμ‹œλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. μ˜¬λ°”λ₯Έ 방법은 μ„Έ 번째 인수λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. https://storybook.js.org/configurations/custom-webpack-config/#full -control-mode--default

@Melocaster no, @storybook/core λŠ” λ‹€μ–‘ν•œ ν”„λ ˆμž„μ›Œν¬μ˜ μŠ€ν† λ¦¬λΆμ—μ„œ κ³΅μœ ν•˜λŠ” λ‚΄λΆ€ λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€. μ—¬μ „νžˆ @storybook/react λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

@hanshenrik

v4.0.0-alpha.14둜 μ—…κ·Έλ ˆμ΄λ“œν•  λ•Œ ν•΄κ²°ν•  수 μ—†μ—ˆλ˜ λ§Žμ€ μƒˆλ‘œμš΄ λ¬Έμ œμ— λΆ€λ”ͺμ³€μŠ΅λ‹ˆλ‹€.

4.0.0-alpha.20 둜 λ‹€μ‹œ μ‹œλ„ν•˜κ³  λ¬Έμ œκ°€ 있으면 κ³΅μœ ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

4.0.0-alpha.20 및 webpack4.10.2 으둜 μ‹œλ„ν•˜λ©΄ DefinePlugin이 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@nerdmax μž¬μƒμ‚° 예제λ₯Ό μ œκ³΅ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? μš°λ¦¬λŠ” 이 ν”ŒλŸ¬κ·ΈμΈμ„ 직접 μ‚¬μš©ν•˜λ©° 우리λ₯Ό μœ„ν•΄ μž‘λ™ν•©λ‹ˆλ‹€.

@Hypnosphi λ‹΅λ³€ κ°μ‚¬ν•©λ‹ˆλ‹€. μ£„μ†‘ν•©λ‹ˆλ‹€. 방금 ν™•μΈν–ˆλŠ”λ° 4.0.0-alpha.20 μ—μ„œ 잘 μž‘λ™ν•©λ‹ˆλ‹€. λ‚΄ ν”„λ‘œμ νŠΈλŠ” μ›μ‚¬μ˜ μž‘μ—… 곡간을 μ‚¬μš©ν•˜κ³  있으며 루트 node_module에 μŠ€ν† λ¦¬λΆμ΄ μ„€μΉ˜λœ 것 κ°™μŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή 폴더λ₯Ό μ‚­μ œν•˜κ³  λͺ¨λ“  νŒ¨ν‚€μ§€λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€.

"webpack": "^4.17.2" 둜 "@storybook/react": "^4.0.0-alpha.21" 둜 μ—…κ·Έλ ˆμ΄λ“œν•œ ν›„ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

DefinePlugin λ¬Έμ œμ—λ„ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 운이 없이 μœ„μ˜ ꢌμž₯ μ•ŒνŒŒ μˆ˜μ •μ„ μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. μ €λŠ” 이 νŠœν† λ¦¬μ–Όμ„ 기본적으둜 λ”°λ₯΄κ³  μžˆμŠ΅λ‹ˆλ‹€: https://www.valentinog.com/blog/react-webpack-babel/ , λ‚˜μ—΄λœ λͺ¨λ“  μ’…μ†μ„±μ˜ μ΅œμ‹  λ²„μ „μ—μ„œλŠ” 잘 μž‘λ™ν•©λ‹ˆλ‹€.

getstorybook λŠ” 잘 μž‘λ™ν•˜μ§€λ§Œ npm run storybook λŠ” λ‹€λ₯Έ λ§Žμ€ μ‚¬λžŒλ“€μ΄ μ–΄λ–€ ν˜•νƒœλ‘œλ“  λ°œμƒν•œ κ²ƒμœΌλ‘œ λ³΄μ΄λŠ” μ˜ˆμ™Έλ₯Ό throwν•©λ‹ˆλ‹€.

[email protected] μŠ€ν† λ¦¬λΆ C:\work\reactProject\
μ‹œμž‘ μŠ€ν† λ¦¬λΆ -p 6006

정보 @storybook/react v3.4.11
정보
exec: 치λͺ…적: git μ €μž₯μ†Œ(λ˜λŠ” μƒμœ„ 디렉토리)κ°€ μ•„λ‹˜: .git

exec: 치λͺ…적: git μ €μž₯μ†Œ(λ˜λŠ” μƒμœ„ 디렉토리)κ°€ μ•„λ‹˜: .git

정보 => μ‚¬μš©μž μ •μ˜ .babelrc λ‘œλ“œ 쀑
info => μ‚¬μš©μž μ •μ˜ μ›ΉνŒ© ꡬ성 λ‘œλ“œ(ν™•μž₯ λͺ¨λ“œ).
C:\work\reactProjectnode_moduleswebpack\lib\DefinePlugin.js:93
컴파일러.ν›….컴파일.νƒ­(
^^

TypeError: μ •μ˜λ˜μ§€ μ•Šμ€ '컴파일' 속성을 읽을 수 μ—†μŠ΅λ‹ˆλ‹€.
DefinePlugin.applyμ—μ„œ (C:\work\reactProjectnode_moduleswebpack\lib\DefinePlugin.js:93:18)
Compiler.applyμ—μ„œ (C:\work\reactProject\node_modules\@storybook\corenode_modules\tapable\lib\Tapable.js:375:16)
μ›ΉνŒ©μ—μ„œ (C:\work\reactProjectnode_modules\@storybook\corenode_moduleswebpack\libwebpack.js:33:19)
export.default (C:\work\reactProjectnode_modules\@storybook\core\dist\server\middleware.js:29:40)
buildDevμ—μ„œ (C:\work\reactProjectnode_modules\@storybook\core\dist\server\build-dev.js:163:36)
κ°œμ²΄μ—μ„œ.(C:\work\reactProjectnode_modules\@storybook\react\dist\server\index.js:23:22)
Module._compileμ—μ„œ (module.js:652:30)
Object.Module._extensions..jsμ—μ„œ (module.js:663:10)
Module.loadμ—μ„œ (module.js:565:32)
tryModuleLoadμ—μ„œ(module.js:505:12)
Function.Module._loadμ—μ„œ (module.js:497:3)
Module.requireμ—μ„œ (module.js:596:17)
ν•„μš” μ‹œ(internal/module.js:11:18)
κ°œμ²΄μ—μ„œ.(C:\work\reactProjectnode_modules\@storybook\react\bin\index.js:3:1)
Module._compileμ—μ„œ (module.js:652:30)
Object.Module._extensions..jsμ—μ„œ (module.js:663:10)
npm 였λ₯˜! μ½”λ“œ ELIFECYCLE
npm 였λ₯˜! 였λ₯˜ 번호 1
npm 였λ₯˜! [email protected] μŠ€ν† λ¦¬λΆ: start-storybook -p 6006
npm 였λ₯˜! μ’…λ£Œ μƒνƒœ 1
npm 였λ₯˜!
npm 였λ₯˜! [email protected] μŠ€ν† λ¦¬λΆ μŠ€ν¬λ¦½νŠΈμ—μ„œ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.
npm 였λ₯˜! 이것은 μ•„λ§ˆλ„ npm의 λ¬Έμ œκ°€ 아닐 κ²ƒμž…λ‹ˆλ‹€. μœ„μ˜ μΆ”κ°€ λ‘œκΉ… 좜λ ₯이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

Storybook을 μ‚¬μš©ν•΄λ³΄κ³  μ‹Άμ§€λ§Œ 이 경우 html-webpack-plugin을 μ‚¬μš©ν•˜μ—¬ λ°©ν•΄λ₯Ό 받은 것 κ°™μŠ΅λ‹ˆλ‹€.

"webpack": "^4.17.2" 둜 "@storybook/react": "^4.0.0-alpha.21" 둜 μ—…κ·Έλ ˆμ΄λ“œν•œ ν›„ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

@ridhoq - config.js 및 webpack.config.js μŠ€ν† λ¦¬λΆμ„ κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” λ™μΌν•œ 버전을 가지고 있으며 μ—¬μ „νžˆ μ•„λž˜ 였λ₯˜λ₯Ό μˆ˜μ‹ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

Uncaught TypeError: Object(...) is not a function
    at Module../node_modules/@emotion/core/dist/core.browser.esm.js (core.browser.esm.js:15)
    at __webpack_require__ (bootstrap:724)
    at fn (bootstrap:101)
    at Module../node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js (styled-base.browser.esm.js:1)
    at __webpack_require__ (bootstrap:724)
    at fn (bootstrap:101)
    at Module../node_modules/@emotion/styled/dist/styled.esm.js (styled.esm.js:1)
    at __webpack_require__ (bootstrap:724)
    at fn (bootstrap:101)
    at Object../node_modules/@storybook/components/dist/navigation/MenuLink.js (MenuLink.js:12)

λ˜ν•œ npm λ˜λŠ” yarn을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

λ¬Όλ‘ μž…λ‹ˆλ‹€ - https://gist.github.com/ridhoq/bfeb7688994cb8fe25f481671bf4d3b4. λΉŒλ“œ μš”κ΅¬ 사항이 λ‹€λ₯Ό 수 μžˆμœΌλ―€λ‘œ 이것이 μ–Όλ§ˆλ‚˜ 도움이 될지 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. 이 ν”„λ‘œμ νŠΈμ— npm을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

create-react-app λ₯Ό 2.0.3 둜 μ—…κ·Έλ ˆμ΄λ“œν•œ 후에도 λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμœΌλ©° 이 λ¬Έμ œλŠ” @storybook/react λ₯Ό ^4.0.0-alpha.21 둜 μ—…κ·Έλ ˆμ΄λ“œν•˜μ—¬ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ(μ΅œμ‹ ) λ²„μ „μœΌλ‘œ μž‘μ—… 버전 을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

"@storybook/react": "4.0.0-alpha.24"
"ts-loader": "5.2.1"
"typescript": "3.1.1"
"webpack": "4.20.2"

일뢀 Addon도 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 이 μ˜ˆμ œκ°€ λˆ„κ΅°κ°€μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

e../node_modules/@emotion/core/dist/core.browser.esm.js(core.browser.esm.js:15) at __webpack_require__(bootstrap:724) at fn(bootstrap:101) at Module../ node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js(styled-base.browser.esm.js:1) at __webpack_require__(bootstrap:724) at fn(bootstrap:101) at Module. ./node_modules/@emotion/styled/dist/styled.esm.js(styled.esm.js:1) at __webpack_require__(bootstrap:724) at fn(bootstrap:101) at Object../node_modules/@storybook/components

@relaxed-tomato ν•΄κ²°ν•˜μ…¨λ‚˜μš”? 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 감사

λ‹€μŒ(μ΅œμ‹ ) λ²„μ „μœΌλ‘œ μž‘μ—… 버전 을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

"@storybook/react": "4.0.0-alpha.24"
"ts-loader": "5.2.1"
"typescript": "3.1.1"
"webpack": "4.20.2"

일뢀 Addon도 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 이 μ˜ˆμ œκ°€ λˆ„κ΅°κ°€μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

κ³ λ§ˆμ›Œ, 그게 λ‚˜λ₯Ό μœ„ν•΄ νŠΈλ¦­μ„ν–ˆλ‹€. ν•˜μ§€λ§Œ babel-core 및 babel-loader 도 μ„€μΉ˜ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ(μ΅œμ‹ ) λ²„μ „μœΌλ‘œ μž‘μ—… 버전 을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

"@storybook/react": "4.0.0-alpha.24"
"ts-loader": "5.2.1"
"typescript": "3.1.1"
"webpack": "4.20.2"

일뢀 Addon도 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 이 μ˜ˆμ œκ°€ λˆ„κ΅°κ°€μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

κ³ λ§ˆμ›Œ, 그게 λ‚˜λ₯Ό μœ„ν•΄ νŠΈλ¦­μ„ν–ˆλ‹€. ν•˜μ§€λ§Œ babel-core 및 babel-loader 도 μ„€μΉ˜ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

여기도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. λ‹€μŒ babel μ½”μ–΄ 및 λ‘œλ” 버전을 μ‚¬μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

"babel-core": "^6.26.3",
"babel-loader": "^7.0.4",

μ΅œμ‹  μ›ΉνŒ©μœΌλ‘œ μ—…κ·Έλ ˆμ΄λ“œν•  λ•Œ μ‹€μˆ˜λ‘œ 이 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 4.20.2 버전은 잘 μž‘λ™ν•©λ‹ˆλ‹€.

"@babel/cli": "7.1.2", // babel 7
"webpack": "4.20.2", // webpack 4
"@storybook/react": "^3.4.11", // storybook 3

였λ₯˜λ„ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μœ„μ—μ„œ μ–ΈκΈ‰ν•œ λŒ€λ‘œ webpack 4.20.2λ₯Ό μˆ˜λ™μœΌλ‘œ μ„€μΉ˜ν•˜λ©΄ ν˜„μž¬λ‘œμ„œλŠ” νŠΈλ¦­μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰