encore가있는 심포니 프로젝트에서 Jest를 설정하는 방법은 무엇입니까?

피에르 앙투안 기욤

webpack-encore 및 babel과 함께 사용하는 Symfony 5 프로젝트가 있습니다.

처음에는 webpack.config.js에서 babel을 활성화했습니다.

.configureBabelPresetEnv((config) => {
    config.useBuiltIns = 'usage';
    config.corejs = 3;
})

encore를 통해 생성 된 구성을 덤프 한 후이 babel.config.js 파일을 만든 것 같습니다.

module.exports = {
  'presets': [
    [
      '@babel/preset-env',
      {
        'modules': 'auto', # this line was set to false, which made the whole thing bug
        'targets': {
          node: 'current',
        },
        'useBuiltIns': 'usage',
        'corejs': 3,
      },
    ],
    '@babel/react',
  ],
  'plugins': [
    '@babel/plugin-syntax-dynamic-import',
  ],
};

각 옵션을 시도한 후 babel 구성 파일없이 Jest를 시작했지만

.configureBabelPresetEnv((config) => {
    config.modules = 'auto';
    config.useBuiltIns = 'usage';
    config.corejs = 3;
})

그러나 그로 인해 jest는 실행되지 않습니다.

 FAIL  assets/jest/Domain/Events/EventScheduler.test.js
  ● Test suite failed to run

    EventScheduler.test.js:1
    import EventScheduler from '../../../js/Domain/Events/EventScheduler';
           ^^^^^^^^^^^^^^

    SyntaxError: Unexpected identifier

      at Runtime._execModule (node_modules/jest-runtime/build/index.js:1166:56)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.671 s
Ran all test suites.

Jest가 webpack의 설정에서 설정을 가져 오지 않았다고 제안합니다.

webpack을 jest에 연결하려고 시도하면서 공식 가이드를 따르려고했습니다. https://jestjs.io/docs/en/webpack 그러나 제안 된 구성 :

module.exports = {
  module: {
    loaders: [
      {exclude: ['node_modules'], loader: 'babel', test: /\.jsx?$/},
      {loader: 'style-loader!css-loader', test: /\.css$/},
      {loader: 'url-loader', test: /\.gif$/},
      {loader: 'file-loader', test: /\.(ttf|eot|svg)$/},
    ],
  },
  resolve: {
    alias: {
      config$: './configs/app-config.js',
      react: './vendor/react-master',
    },
    extensions: ['', 'js', 'jsx'],
    modules: [
      'node_modules',
      'bower_components',
      'shared',
      '/shared/vendor/modules',
    ],
  },
};

webpack에서 오류가 발생합니다.

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.module has an unknown property 'loaders'. These properties are valid:
   object { defaultRules?, exprContextCritical?, exprContextRecursive?, exprContextRegExp?, exprContextRequest?, noParse?, rules?, strictExportPresence?, strictThisContextOnImports?, unknownContextCritical?, unknownContextRecursive?, unknownContextRegExp?, unknownContextRequest?, unsafeCache?, wrappedContextCritical?, wrappedContextRecursive?, wrappedContextRegExp? }
   -> Options affecting the normal modules (`NormalModuleFactory`).
 - configuration.resolve.extensions[0] should be an non-empty string.
   -> A non-empty string
error Command failed with exit code 1.

지금은 별도의 babel.config.js 파일로 작업하는 것이 있지만 encore로 수행하는 표준 방법이 있습니까?

피에르 앙투안 기욤

결국 Encore에서 babel conf를 얻었습니다.

// babel.config.js
module.exports = {
  presets: ['@babel/preset-env', '@babel/preset-react'],
};
// webpack.config.js
const path = require('path');
const Encore = require('@symfony/webpack-encore');

Encore
.setOutputPath(path.resolve('./../public/build'))
.setPublicPath('/build')
.addEntry('app', './assets/js/app.js')
.splitEntryChunks()
.enableSingleRuntimeChunk()
.cleanupOutputBeforeBuild()
.enableBuildNotifications()
.enableSourceMaps(!Encore.isProduction())
.enableVersioning(Encore.isProduction())
.enableSassLoader()
.enableReactPreset()

module.exports = Encore.getWebpackConfig();
$ ./node_modules/.bin/jest
 PASS  assets/js/Modal.test.jsx
  ✓ scenario de test (35 ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.56 s, estimated 2 s
Ran all test suites.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

작곡가로 심포니를 설치하는 방법은 무엇입니까?

분류에서Dev

Laravel 프로젝트에서 Ubuntu에서 VSCode로 XDebug를 설정하는 방법은 무엇입니까?

분류에서Dev

Visual Studio에서 프로젝트를 최근보기로 설정하는 방법은 무엇입니까?

분류에서Dev

프로젝트에서 Meteor 핵심 패키지를 재정의하는 방법은 무엇입니까?

분류에서Dev

cPanel 하위 도메인에서 laravel 프로젝트를 설정하는 방법은 무엇입니까?

분류에서Dev

파이썬 프로젝트에서 두 앱 사이에 urlpatterns를 설정하는 방법은 무엇입니까?

분류에서Dev

파이썬 프로젝트에서 두 앱 사이에 urlpatterns를 설정하는 방법은 무엇입니까?

분류에서Dev

Laravel 프로젝트에서 X-Frame-Options를 설정하는 방법은 무엇입니까?

분류에서Dev

Maven 프로젝트에서 기본 매개 변수를 설정하는 방법은 무엇입니까?

분류에서Dev

Windows VS C ++에서 GDAL 1.9.2 CPP 프로젝트를 설정하는 방법은 무엇입니까?

분류에서Dev

Windows VS C ++에서 GDAL 1.9.2 CPP 프로젝트를 설정하는 방법은 무엇입니까?

분류에서Dev

SBT에서 blueeyes 프로젝트를 설정하는 방법은 무엇입니까?

분류에서Dev

Cordova 프로젝트에서 URI를 올바르게 설정하는 방법은 무엇입니까?

분류에서Dev

XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

분류에서Dev

XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

분류에서Dev

XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

분류에서Dev

Libgdx 프로젝트 생성기에서 핵심 프로젝트 경로를 지정하는 방법은 무엇입니까?

분류에서Dev

Xcode에서 AppCode로 프로젝트를 여는 방법은 무엇입니까?

분류에서Dev

현재 프로젝트에서 다른 Java 프로젝트를 참조하는 방법은 무엇입니까?

분류에서Dev

Mac에서 Git 프로젝트를 여는 방법은 무엇입니까?

분류에서Dev

Angular가있는 ionic 프로젝트에서 npm semver를 가져 오는 방법은 무엇입니까?

분류에서Dev

핵심 PHP 프로젝트에서 yii 프레임 워크 프로젝트의 마스터 페이지를 사용하는 방법은 무엇입니까?

분류에서Dev

Linux의 Qt 프로젝트에서 버전 정보를 추가하고 보는 방법은 무엇입니까?

분류에서Dev

Coverity Scan에 제출할 Travis / Rails 프로젝트를 설정하는 방법은 무엇입니까?

분류에서Dev

프로젝트 루트에서 프로젝트 루트 / 트렁크로 프로젝트를 이동하는 방법은 무엇입니까?

분류에서Dev

다른 프로젝트 Xamarin 프로젝트에 BroadcastReceiver를 포함하는 방법은 무엇입니까?

분류에서Dev

Android MediaRecorder : 비트 심도를 설정하는 방법은 무엇입니까?

분류에서Dev

Eclipse에서 GAE Java 프로젝트 (Maven 포함)를 가져 오는 방법은 무엇입니까?

분류에서Dev

Github에서 프로젝트를 다시 포크하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    작곡가로 심포니를 설치하는 방법은 무엇입니까?

  2. 2

    Laravel 프로젝트에서 Ubuntu에서 VSCode로 XDebug를 설정하는 방법은 무엇입니까?

  3. 3

    Visual Studio에서 프로젝트를 최근보기로 설정하는 방법은 무엇입니까?

  4. 4

    프로젝트에서 Meteor 핵심 패키지를 재정의하는 방법은 무엇입니까?

  5. 5

    cPanel 하위 도메인에서 laravel 프로젝트를 설정하는 방법은 무엇입니까?

  6. 6

    파이썬 프로젝트에서 두 앱 사이에 urlpatterns를 설정하는 방법은 무엇입니까?

  7. 7

    파이썬 프로젝트에서 두 앱 사이에 urlpatterns를 설정하는 방법은 무엇입니까?

  8. 8

    Laravel 프로젝트에서 X-Frame-Options를 설정하는 방법은 무엇입니까?

  9. 9

    Maven 프로젝트에서 기본 매개 변수를 설정하는 방법은 무엇입니까?

  10. 10

    Windows VS C ++에서 GDAL 1.9.2 CPP 프로젝트를 설정하는 방법은 무엇입니까?

  11. 11

    Windows VS C ++에서 GDAL 1.9.2 CPP 프로젝트를 설정하는 방법은 무엇입니까?

  12. 12

    SBT에서 blueeyes 프로젝트를 설정하는 방법은 무엇입니까?

  13. 13

    Cordova 프로젝트에서 URI를 올바르게 설정하는 방법은 무엇입니까?

  14. 14

    XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

  15. 15

    XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

  16. 16

    XCode에서 프로젝트 내에서 프로젝트를 제거하는 방법은 무엇입니까?

  17. 17

    Libgdx 프로젝트 생성기에서 핵심 프로젝트 경로를 지정하는 방법은 무엇입니까?

  18. 18

    Xcode에서 AppCode로 프로젝트를 여는 방법은 무엇입니까?

  19. 19

    현재 프로젝트에서 다른 Java 프로젝트를 참조하는 방법은 무엇입니까?

  20. 20

    Mac에서 Git 프로젝트를 여는 방법은 무엇입니까?

  21. 21

    Angular가있는 ionic 프로젝트에서 npm semver를 가져 오는 방법은 무엇입니까?

  22. 22

    핵심 PHP 프로젝트에서 yii 프레임 워크 프로젝트의 마스터 페이지를 사용하는 방법은 무엇입니까?

  23. 23

    Linux의 Qt 프로젝트에서 버전 정보를 추가하고 보는 방법은 무엇입니까?

  24. 24

    Coverity Scan에 제출할 Travis / Rails 프로젝트를 설정하는 방법은 무엇입니까?

  25. 25

    프로젝트 루트에서 프로젝트 루트 / 트렁크로 프로젝트를 이동하는 방법은 무엇입니까?

  26. 26

    다른 프로젝트 Xamarin 프로젝트에 BroadcastReceiver를 포함하는 방법은 무엇입니까?

  27. 27

    Android MediaRecorder : 비트 심도를 설정하는 방법은 무엇입니까?

  28. 28

    Eclipse에서 GAE Java 프로젝트 (Maven 포함)를 가져 오는 방법은 무엇입니까?

  29. 29

    Github에서 프로젝트를 다시 포크하는 방법은 무엇입니까?

뜨겁다태그

보관