ホセとマリウスのアプローチに従い(2019年にバベルの最新バージョンを更新)、最新のJavaScriptファイルをsrcディレクトリに保持し、npmのprepublish
スクリプトでビルドしてlibディレクトリに出力します。
.npmignore
/src
.gitignore
/lib
/node_modules
Babelをインストールする(私の場合はバージョン7.5.5)
$ npm install @babel/core @babel/cli @babel/preset-env --save-dev
package.json
{
"name": "latest-js-to-npm",
"version": "1.0.0",
"description": "Keep the latest JavaScript files in a src directory and build with npm's prepublish script and output to the lib directory.",
"main": "lib/index.js",
"scripts": {
"prepublish": "babel src -d lib"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/cli": "^7.5.5",
"@babel/core": "^7.5.5",
"@babel/preset-env": "^7.5.5"
},
"babel": {
"presets": [
"@babel/preset-env"
]
}
}
そして、私はsrc/index.js
矢印関数を使用しています:
"use strict";
let NewOneWithParameters = (a, b) => {
console.log(a + b); // 30
};
NewOneWithParameters(10, 20);
これがGitHubのリポジトリです。
これでパッケージを公開できます:
$ npm publish
...
> latest-js-to-npm@1.0.0 prepublish .
> babel src -d lib
Successfully compiled 1 file with Babel.
...
パッケージがnpmに公開される前にlib/index.js
、それが生成され、es5にトランスパイルされていることがわかります。
"use strict";
var NewOneWithParameters = function NewOneWithParameters(a, b) {
console.log(a + b); // 30
};
NewOneWithParameters(10, 20);
[ロールアップバンドラーの更新]
@kywが尋ねたように、Rollup bundlerをどのように統合しますか?
まず、インストールrollup
してrollup-plugin-babel
npm install -D rollup rollup-plugin-babel
次に、rollup.config.js
プロジェクトのルートディレクトリに作成します
import babel from "rollup-plugin-babel";
export default {
input: "./src/index.js",
output: {
file: "./lib/index.js",
format: "cjs",
name: "bundle"
},
plugins: [
babel({
exclude: "node_modules/**"
})
]
};
最後に、更新prepublish
中package.json
{
...
"scripts": {
"prepublish": "rollup -c"
},
...
}
これで、を実行できますnpm publish
。パッケージがnpmに公開される前に、lib / index.jsが生成され、es5に変換されていることがわかります。
'use strict';
var NewOneWithParameters = function NewOneWithParameters(a, b) {
console.log(a + b); // 30
};
NewOneWithParameters(10, 20);
注:ちなみに、@babel/cli
ロールアップバンドラーを使用している場合は必要ありません。安全にアンインストールできます:
npm uninstall @babel/cli