lukeed / lukeed/webpack-plugin-replace

ERROR in http.min.js from Terser

オープン
#7 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
JavaScript
スター
36
フォーク
8
PR マージ指標
30日以内にマージされた PR はありません

説明

When I set webpack config `mode: 'production'`,it throw error:

```
ERROR in http.min.js from Terser
"Export" statement may only appear at the top level [http.min.js:1161,0]
```

But when I set `mode: 'development'`,it works...I can't figure out why.

```js
// http.js

const http = () => {}

http.version = '__version__';

export default http;
```

```js
// webpack.build-lib.js
const path = require('path');
const ReplacePlugin = require('../lib/webpack-plugin-replace');
const rootPath = path.resolve(__dirname, '..');
const pkg = require('../package.json');

const libName = 'http';
const entryFile = path.resolve(rootPath, `src/${libName}.js`);

module.exports = {
entry: entryFile,
mode: 'production',
output: {
path: path.resolve(rootPath, 'lib'),
filename: `${libName}.min.js`,
libraryTarget: 'umd2',
libraryExport: 'default',
},
plugins: [
new ReplacePlugin({
exclude: [
/node_modules/,
],
patterns: [{
regex: /__version__/g,
value: pkg.version,
}],
}),
],
};

```

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

http.js と webpack.build-lib.js から始め、次に mode: 'production' と Terser を使用する本番ビルドを実行して、開発ビルドと比較します。ReplacePlugin の出力がどのように lib/http.min.js に到達するかを追跡し、なぜ export がトップレベルに存在しなくなったのかを特定します。報告された Terser エラーなしで本番ビルドが完了すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript
領域
build-system
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。