बाबेल 7 में अपग्रेड: नल की संपत्ति 'बाइंडिंग' को पढ़ा नहीं जा सकता


118

मैंने इन आदेशों को चलाकर केवल बबेल 7 (6 से) में अपग्रेड किया :

npm remove babel-cli
npm install --save-dev @babel/cli @babel/core @babel/preset-env

यहाँ मेरी .babelrcफ़ाइल है:

{ "presets": ["env"] }

फिर मैं भागा:

babel js/src --out-dir js/dist

और इसका परिणाम होता है:

TypeError: Cannot read property 'bindings' of null
    at Scope.moveBindingTo (/xyz/node_modules/@babel/traverse/lib/scope/index.js:867:13)
    at BlockScoping.updateScopeInfo (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17)
    at BlockScoping.run (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12)
    at PluginPass.BlockStatementSwitchStatementProgram (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24)
    at newFn (/xyz/node_modules/@babel/traverse/lib/visitors.js:193:21)
    at NodePath._call (/xyz/node_modules/@babel/traverse/lib/path/context.js:53:20)
    at NodePath.call (/xyz/node_modules/@babel/traverse/lib/path/context.js:40:17)
    at NodePath.visit (/xyz/node_modules/@babel/traverse/lib/path/context.js:88:12)
    at TraversalContext.visitQueue (/xyz/node_modules/@babel/traverse/lib/context.js:118:16)
    at TraversalContext.visitSingle (/xyz/node_modules/@babel/traverse/lib/context.js:90:19)

मैंने गलत क्या किया?

जवाबों:


307

अपनी .babelrcफ़ाइल में, बदलें

{ "presets": ["env"] } 

सेवा

{ "presets": ["@babel/preset-env"] }

(और उस पैकेज को स्थापित करें यदि आपने पहले से नहीं किया है)।

अपने में .babelrcआप अभी भी पैकेज को संदर्भित कर रहे हैं babel-preset-env(जो 6.x के लिए है), आप @babel/preset-envइसके बजाय संदर्भ लेना चाहते हैं (जो कि 7.x के लिए है)।

https://github.com/babel/babel/issues/6186#issuecomment-366556833

नोट: आपको यह परिवर्तन करना चाहिए webpack.config.jsयदि यह वहां भी है।

यहां नमूना वेबपैक कॉन्फ़िगरेशन अनुभाग है जहां आपको प्रीसेट बदलना चाहिए:

use: {
  loader: 'babel-loader',
  options: {
    // Here you should change 'env' to '@babel/preset-env'
    presets: ['@babel/preset-env'],
  },
},

8
ध्यान दें कि आपको यह परिवर्तन करना चाहिए webpack.config.jsयदि यह वहां भी है।
हॉकआई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.