我正在构建一个包含可重用组件的程序包,我想将其发布到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"
}
}
我希望能够像这样var x = {...this.props}
来“解压缩” JS对象,但是在运行构建脚本时,它卡在了...this.props
部分。
我需要翻译什么语法?
答案 0 :(得分:2)
您可以考虑使用transform object rest spread plugin。在usage部分中了解如何将其添加到Babel配置中。您可以像这样将其添加到.babelrc
中:
{
"presets": ["es2015", "react"],
"plugins": ["transform-object-rest-spread"]
}
当前Babel版本中的“舞台”预设为deprecated。
虽然babel-preset-env
可能也提供了此功能,但它并不是针对您所问问题的需求–尽管我同意您至少应该这样做,但它具有更广泛的用例考虑一下。进一步了解here。