Closed Hoishin closed 4 years ago
As a workaround, I was able to do this:
const {fork} = require('child_process');
const isProduction = process.env.NODE_ENV === 'production';
const command = isProduction ? 'build' : 'watch';
const detailedReport = isProduction ? ['--detailed-report'] : [];
fork('./node_modules/.bin/parcel', [
command,
'src/extension/index.ts',
'--target',
'node',
'--out-dir',
'extension',
'--public-url',
'./',
...detailedReport,
])
fork('./node_modules/.bin/parcel', [
command,
'src/dashboard/*.html',
'--out-dir',
'dashboard',
'--public-url',
'./',
...detailedReport,
])
fork('./node_modules/.bin/parcel', [
command,
'src/twitter-callback/*.html',
'--out-dir',
'twitter-callback',
'--public-url',
'./',
...detailedReport,
])
Not the best way but it at least works.
I think the problem arises from the cache. Files are cached after transformation, so a file is transpiled the first time for one target and the second time it is used straight from cache, regardless of the target.
Try adding the cache: false
option to your options object.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs.
🐛 bug report
When using API, building for multiple targets (e.g.
node
andbrowser
) in one script with API results in second or later target not working.🎛 Configuration (.babelrc, package.json, cli command)
.babelrc: I don't have one
package.json:
cli command: Not using CLI
build script:
🤔 Expected Behavior
It should bundle each entrypoint with the respective target.
😯 Current Behavior
It appears the later entrypoints are bundled with first entrypoint's target.
node
->browser
If I bundle with
node
target first, it sometimes warns during bundling, and doesn't work in run-time for both generated bundles.Warning during bundling:
Runtime error in Node:
Runtime error in browser:
browser
->node
If I bundle with
browser
target first, it doesn't work in run-time in Node.Runtime error in Node:
💁 Possible Solution
It looks the bundler shares some context under the hood. When run for
browser
target, it remains targetingbrowser
and vice versa.🔦 Context
It would be nice to be able to bundle different target at once. I set up multiple script for each bundle output but it gets annoying as output destinations increases.
💻 Code Sample
https://github.com/RTAinJapan/rtainjapan-layouts
🌍 Your Environment
1.9.7
v10.6.0
1.7.0
Mac OS X 10.13.6