lukeed / lukeed/webpack-plugin-replace
ERROR in http.min.js from Terser
まだ誰も着手していません。
- 主要言語
- 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,
}],
}),
],
};
```
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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