npm

Publish の方法

webpack

output

ライブラリターゲットは commonjs2 にする。(umd でも可)

const output = {
  path: path.resolve(__dirname, 'dist'),
  filename: 'bundle.js',
  libraryTarget: 'commonjs2',
  publicPath: '/dist/',
};

externals

バンドルしないファイルを記載する。特に react 関係は必ず外すこと。

const externals = {
  // Don't bundle external libraries
  react: {
    commonjs: 'react',
    commonjs2: 'react',
    amd: 'React',
    root: 'React',
  },
  'react-dom': {
    commonjs: 'react-dom',
    commonjs2: 'react-dom',
    amd: 'ReactDOM',
    root: 'ReactDOM',
  },
  emotion: {
    commonjs: 'emotion',
    commonjs2: 'emotion',
  },
};

.npmignore

yarn add したときに、node_modules に入る必要のないファイルを記載する。 なお、下記のファイルには ignore が効かず、強制的にインストールされる。

  • package.json
  • README.md
  • LICENSE

package.json

scripts

npm に publish する前に必要なコマンドを記載する。

"prepublish": "del-cli dist/**/* && npm run build"

main

npm package の default export になるべきファイルを記載する。

"main": "dist/bundle.js",

peerDepenencies

警告表示のみで実際にインストールはしないものを記載(react はこちら)

dependencies

実際にインストールするものを記載(絶対に必要なパッケージはこちら)

npm への publish

npm login
npm publish

参考

React コンポーネントを NPM で公開する方法

AMD, CommonJS, and UMD の違い