// webpack.config.js
const webpack = require('webpack');
const precss = require('precss');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const PROD = process.env.NODE_ENV === 'production';
const jsPresets = [
['env', {
targets: PROD ? {
'browsers' : [
'last 4 versions',
'safari >= 7',
'Explorer 11',
]
} : {
chrome: 1,
},
}],
'es2015',
'stage-1',
];
const baseConfig = {
entry: [
'babel-polyfill',
'antd/dist/antd.css',
'./node_modules/m-react-splitters/lib/splitters.css',
'./node_modules/cli-truncate/index.js',
'react-s-alert/dist/s-alert-default.css',
'react-s-alert/dist/s-alert-css-effects/flip.css',
'react-s-alert/dist/s-alert-css-effects/bouncyflip.css',
'react-quill/dist/quill.snow.css',
],
output: {
path: './wp-content/plugins/clausehound/js',
filename: 'clausehound.js',
},
module: {
loaders: [{
test: /\.json$/,
loader: 'json-loader',
}, {
test: /\.css$/,
loader: ExtractTextPlugin.extract('style', 'css?-url!postcss'),
}, {
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
include: /cli-truncate\/index.js/,
loader: 'babel-loader',
query: {
presets: jsPresets,
plugins: [
['import', { libraryName: 'antd' }],
['transform-es2015-arrow-functions'],
],
},
}, {
test: /\.jsx/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
presets: jsPresets.concat(['react']),
},
}],
rules: [
{ test: /[\/]jquery\.js$/, use: 'expose-loader?$!expose?jQuery' }
],
},
postcss:() => [precss],
plugins: [
new ExtractTextPlugin('../css/clausehound.css', { allChunks: true }),
new webpack.OldWatchingPlugin(),
],
};
// Modify config if production build or not
if (PROD) {
module.exports = Object.assign({}, baseConfig, {
plugins: baseConfig.plugins.concat([
new webpack.optimize.DedupePlugin(),
new webpack.optimize.UglifyJsPlugin({ sourceMap: true }),
new webpack.DefinePlugin({
process: {
env: {
NODE_ENV: JSON.stringify('production'),
},
},
}),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
}),
[
'transform-es2015-arrow-functions',
'transform-class-properties',
'syntax-class-properties',
],
]),
});
} else {
module.exports = baseConfig;
}
IE11は矢印関数の構文で壊れています。すべてではないにしても、ノードモジュールの大半には矢印機能があり、バンドルされたjsファイルにその全体を含めることは望ましくありません。私はbabel-loaderを実行してテストするだけですが、私はbaseConfig
のentry
プロパティに構文エラーを投げている 'cli-truncate'からファイルをインクルードしましたが、そのパッケージでは()=> index.js。Internet Explorer 11用BabelでReactアプリを構築するには?
コードがcli-truncate
から失敗した正確な行はこれは:(入力、列オプト) module.exportsはの= => {..}
私は、これは、このパッケージに特異的であるとは思わないけど私はwebpackの設定を何らかの形で変更する必要があると推測していますが、わかりません。任意のアイデアをどのようにこれを解決するには?
エラー:
ファイル:
私はまだ自分自身を反応学んでいます。しかし、私はコンソールでエラーが表示されるたびにJqueryライブラリが見つからないように思えますか?しかし、遠く離れているかもしれません。 – Jorden1337
これはPROD envまたはdev?で壊れています、スクリーンショットから構文エラーが表示されますが、構文エラーの内容はわかりません。私はこれがよりwebpackの設定に関連していると思うかもしれない、多分あなたはwebpack(可能であれば)としてこれをタグ付けする必要があります – Kunukn
@ Jorden1337:エラーはjsの残りを停止するので、最初のエラーはこの場合解決する必要があります。 – AnAspiringCanadian