"перевод" {... реквизит} в JS - PullRequest
0 голосов
/ 31 августа 2018

Я создаю пакет с повторно используемыми компонентами, который хочу опубликовать в NPM.

.babelrc

{
  "presets": ["es2015", "react"]
}

.eslintrc

{
  root: true,
  parser: 'babel-eslint',
  plugins: [/*'import', */'jsx-a11y', 'react'],
env: {
    browser: true,
    commonjs: true,
    es6: true,
    jest: true,
    node: true
  },
parserOptions: {
    ecmaVersion: 6,
    sourceType: 'module',
    ecmaFeatures: {
      jsx: true,
      generators: true,
      experimentalObjectRestSpread: true
    }
  },
settings: {
    'import/ignore': [
      'node_modules',
      '\\.(json|css|jpg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm)$',
    ],
    'import/extensions': ['.js'],
    'import/resolver': {
      node: {
        extensions: ['.js', '.json']
      }
    }
  }
}

package.json

{
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1"
  },
  "dependencies": {
    "react": "^16.4.2"
  }
}

Я хотел бы иметь возможность "распаковать" объект JS следующим образом: var x = {...this.props}, но при запуске моего сценария сборки он застревает на ...this.props части.

Что мне нужно для перевода этого синтаксиса?

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете рассмотреть возможность использования плагина для преобразования остаточного объекта . Узнайте, как добавить его в конфигурацию Babel, в разделе Использование . Вы можете добавить его к своему .babelrc так:

{
  "presets": ["es2015", "react"],
  "plugins": ["transform-object-rest-spread"]
}

В текущем выпуске Babel пресеты "stage" были устарели .

Хотя babel-preset-env может также предоставлять эту возможность, она не нацелена на то, что вам нужно в вопросе, который вы задаете, - у него более широкий вариант использования, хотя я согласен, что вы должны хотя бы рассмотреть его. Подробнее об этом здесь .

...