1. ホーム

Rollup.js|solve the package react project error ReferenceError: process is not defined.

2022-02-14 08:56:14

bundle.jsを開き、エラーの箇所を確認します。

 プロセスオブジェクトは、nodejsの環境変数で、ブラウザ側では利用できません。

回避策として、パッケージ化されたbundle.jsにプロセスオブジェクトをvarすることで、以下のようになります。

var process = {
  env: {
    NODE_ENV: 'production'
  }
}

しかし、bundle.jsを再構築するたびに、また追加しなければならないので、rollup.config.jsで以下のように設定することができます。

例えば 

rollup.config.jsの構成

import resolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs'

const Global = `var process = {
  env: {
    NODE_ENV: 'production'
  }
}`

export default {
  input: '. /lib/test/test.js',
  output: {
    file: 'build/bundle.js',
    format: 'cjs',
    banner: Global
  },
  watch: {
    include: 'lib/**'
  },
  plugins: [resolve(), commonjs()]
}

output.bannerプロパティの機能は、パッケージ化されたファイルの先頭に値を追加することです。