この投稿:Can I use an ES6/2015 module import to set a reference in 'global' scope?は「Webpackでモジュールをグローバルに使用できるようにするにはどうすればよいですか?使用してのWebPACKのProvidePlugin
:Webpack:グローバルスコープで名前付きエクスポートを使用するにはどうすればいいですか
// webpack.config.js
plugins: [
new webpack.ProvidePlugin({
React: "react",
})
],
// Foo.js
class Foo extends React.Component { // React is global
しかし、その代わりに、デフォルトの輸出の私が名付け輸出用グローバルにしたい場合は、何?
// Foo.js
class Foo extends React.Component {
propTypes = {
bar: PropTypes.string, // PropTypes were never imported
}
問題はPropTypes
は、私は通常のようにそれをインポートしたい意味という名前のエクスポート、ということである:つまり、私は何をしたい場合は
import {PropTypes} from 'react';
が、私がすることはできません
new webpack.ProvidePlugin({
{PropTypes}: "react", // this doesn't work
})
だから、私の質問がされています:WebPACKのでグローバルに(。例えば者PropTypes
に反応)という名前のエクスポートを公開する方法はありますWebPACKのの設定でそれを行いますか?
P.S.私はちょうど私のルートJSファイルで明示的にそれを行うだろう:私のモジュールをインポート得るとき
// index.js
import {PropTypes} from 'react';
global.PropTypes = PropTypes;
import 'restOfMyCode';
それは輸入が掲揚されているので、仕事やglobal.PropTypes
がこれまでに設定を取得する前に発生していないので、何のglobal.PropTypes
は彼らのためにありません使用する。必要と反応し、コールとアクセスしてこれを行います
new webpack.DefinePlugin({
PropTypes: 'require("react").PropTypes',
})
はWebPACKの単純(その正確な場合には)PropTypes
のすべての言及を交換することがあります: