calvinmetcalf / rollup-plugin-node-builtins

138 stars 40 forks source link

Feature/mocks #23

Closed SupremeTechnopriest closed 7 years ago

SupremeTechnopriest commented 7 years ago

A continuation of #22

SupremeTechnopriest commented 7 years ago

@calvinmetcalf This should have everything you requested. Let me know if we need anything else to get this merged in. Happy holidays! 🎄 🎁

calvinmetcalf commented 7 years ago

The json and html file in dist were supposed to be in there

calvinmetcalf commented 7 years ago

I wanna double check about process-es6 but otherwise looks pretty good, thanks for the work I'll try to get it to Monday

SupremeTechnopriest commented 7 years ago

My pleasure, thanks for your work on rollup. It was tough to get here, but totally worth it.

SupremeTechnopriest commented 7 years ago

@calvinmetcalf Are you sure about the dist folder? Here is your .gitignore on master https://github.com/calvinmetcalf/rollup-plugin-node-builtins/blob/master/.gitignore

calvinmetcalf commented 7 years ago

I manually added those even though i had them in the gitinore, but dont worry about it ill deal with it

calvinmetcalf commented 7 years ago

ok pushed up a few changes, not sure why process-es6 helped you as that caused errors for me

SupremeTechnopriest commented 7 years ago

checking to see if this still works with my set up

SupremeTechnopriest commented 7 years ago

@calvinmetcalf Yeah I have the same problem. Here is a stack trace:

Could not resolve 'process' from /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-builtins/src/es6/util.js
Error: Could not resolve 'process' from /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-builtins/src/es6/util.js
    at Error (native)
    at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js:78:21
    at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/index.js:265:24
    at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:46:14
    at process (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:173:43)
    at ondir (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:188:17)
    at load (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:69:43)
    at onex (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:92:31)
    at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:22:47
    at FSReqWrap.oncomplete (fs.js:123:15)

So I have a library, edgemesh-utils that gets rolled up with format es. That library is then used across 3 other projects that are rolled up for the browser with format iife. It seems that rollup-plugin-node-builtins needs to be rolled up with its own source code as a plugin (but probably not because that would be redundant). process ends up being undefined in non node environments. Changing to process-es6 made things browser compatible for me because it could resolve that library while it could not resolve process.

calvinmetcalf commented 7 years ago

did you use rollup-plugin-node-globals as well ?

On Mon, Dec 26, 2016 at 11:41 AM Randy Lebeau notifications@github.com wrote:

@calvinmetcalf https://github.com/calvinmetcalf Yeah I have the same problem. Here is a stack trace:

Could not resolve 'process' from /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-builtins/src/es6/util.js Error: Could not resolve 'process' from /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-builtins/src/es6/util.js at Error (native) at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js:78:21 at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/index.js:265:24 at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:46:14 at process (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:173:43) at ondir (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:188:17) at load (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:69:43) at onex (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:92:31) at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:22:47 at FSReqWrap.oncomplete (fs.js:123:15)

So I have a library, edgemesh-utils that gets rolled up with format es. That library is then used across 3 other projects that are rolled up for the browser with format iife. It seems that rollup-plugin-node-builtins needs to be rolled up with its own source code as a plugin (but probably not because that would be redundant). process ends up being undefined in non node environments. Changing to process-es6 made things browser compatible for me because it could resolve that library while it could not resolve process.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/calvinmetcalf/rollup-plugin-node-builtins/pull/23#issuecomment-269225654, or mute the thread https://github.com/notifications/unsubscribe-auth/ABE4n1ouNwVUyL2DNxHI74UrJ7qSOnlhks5rL-4agaJpZM4LVSYn .

SupremeTechnopriest commented 7 years ago

yep here is my rollup config

import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import builtins from 'rollup-plugin-node-builtins';
import globals from 'rollup-plugin-node-globals';
import commonjs from 'rollup-plugin-commonjs';
import json from 'rollup-plugin-json';
import uglify from 'rollup-plugin-uglify';
import { minify } from 'uglify-js';

const isProd = process.env.NODE_ENV === 'production';
const isServer = process.env.IS_SERVER;
const file = 'edgemesh.utils';

const prodServerTargets = [{ dest: 'server/' + file + '.min.js', format: 'cjs' }];
const prodBrowserTargets = [{ dest: 'dist/' + file + '.min.js', format: 'iife' }];
const devServerTargets = [
    { dest: 'server/' + file + '.js', format: 'cjs' },
    { dest: 'server/index.js', format: 'es' }
];
const devBrowserTargets = [
    { dest: 'dist/' + file + '.browser.js', format: 'iife' },
    { dest: 'dist/' + file + '.js', format: 'es' }
];

export default {
    entry: 'src/index.js',
    moduleName: 'utils',
    plugins: [
        resolve({
            jsnext: true,
            main: true,
            browser: true,
            preferBuiltins: true
        }),
        commonjs({
            ignoreGlobal: true,
            include: 'node_modules/**',
            namedExports: {
                chai: [ 'expect', 'assert' ]
            }
        }),
        babel({
            babelrc: false,
            presets: [ 'es2015-rollup' ],
            plugins: [
                'fast-async',
                'transform-flow-strip-types',
                'transform-decorators-legacy',
                'transform-object-rest-spread',
                'transform-class-properties',
                'transform-export-extensions'
            ]
        }),
        json(),
        (!isServer && globals()),
        (!isServer && builtins()),
        (isProd && uglify({ warnings: true }, minify))
    ],
    targets: isProd
        ? ( isServer ? prodServerTargets : prodBrowserTargets )
        : ( isServer ? devServerTargets : devBrowserTargets )
};
calvinmetcalf commented 7 years ago

you need globals earlier, before resolve

On Mon, Dec 26, 2016 at 12:54 PM Randy Lebeau notifications@github.com wrote:

yep here is my rollup config

import babel from 'rollup-plugin-babel';import resolve from 'rollup-plugin-node-resolve';import builtins from 'rollup-plugin-node-builtins';import globals from 'rollup-plugin-node-globals';import commonjs from 'rollup-plugin-commonjs';import json from 'rollup-plugin-json';import uglify from 'rollup-plugin-uglify';import { minify } from 'uglify-js'; const isProd = process.env.NODE_ENV === 'production';const isServer = process.env.IS_SERVER;const file = 'edgemesh.utils'; const prodServerTargets = [{ dest: 'server/' + file + '.min.js', format: 'cjs' }];const prodBrowserTargets = [{ dest: 'dist/' + file + '.min.js', format: 'iife' }];const devServerTargets = [ { dest: 'server/' + file + '.js', format: 'cjs' }, { dest: 'server/index.js', format: 'es' } ];const devBrowserTargets = [ { dest: 'dist/' + file + '.browser.js', format: 'iife' }, { dest: 'dist/' + file + '.js', format: 'es' } ]; export default { entry: 'src/index.js', moduleName: 'utils', plugins: [ resolve({ jsnext: true, main: true, browser: true, preferBuiltins: true }), commonjs({ ignoreGlobal: true, include: 'node_modules/**', namedExports: { chai: [ 'expect', 'assert' ] } }), babel({ babelrc: false, presets: [ 'es2015-rollup' ], plugins: [ 'fast-async', 'transform-flow-strip-types', 'transform-decorators-legacy', 'transform-object-rest-spread', 'transform-class-properties', 'transform-export-extensions' ] }), json(), (!isServer && globals()), (!isServer && builtins()), (isProd && uglify({ warnings: true }, minify)) ], targets: isProd ? ( isServer ? prodServerTargets : prodBrowserTargets ) : ( isServer ? devServerTargets : devBrowserTargets ) };

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/calvinmetcalf/rollup-plugin-node-builtins/pull/23#issuecomment-269230823, or mute the thread https://github.com/notifications/unsubscribe-auth/ABE4nx1-G0ofP4BvRdFiYx3s1X53VbAiks5rL_8_gaJpZM4LVSYn .

SupremeTechnopriest commented 7 years ago

For some reason, if I dont run babel before globals I get errors compiling my code. Example:

rollup.config.js

import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import builtins from 'rollup-plugin-node-builtins';
import globals from 'rollup-plugin-node-globals';
import commonjs from 'rollup-plugin-commonjs';
import json from 'rollup-plugin-json';
import uglify from 'rollup-plugin-uglify';
import { minify } from 'uglify-js';

const isProd = process.env.NODE_ENV === 'production';
const isServer = process.env.IS_SERVER;
const file = 'edgemesh.utils';

const prodServerTargets = [{ dest: 'server/' + file + '.min.js', format: 'cjs' }];
const prodBrowserTargets = [{ dest: 'dist/' + file + '.min.js', format: 'iife' }];
const devServerTargets = [
    { dest: 'server/' + file + '.js', format: 'cjs' },
    { dest: 'server/index.js', format: 'es' }
];
const devBrowserTargets = [
    { dest: 'dist/' + file + '.browser.js', format: 'iife' },
    { dest: 'dist/' + file + '.js', format: 'es' }
];

export default {
    entry: 'src/index.js',
    moduleName: 'utils',
    plugins: [
        (!isServer && globals()),
        resolve({
            jsnext: true,
            main: true,
            browser: true,
            preferBuiltins: true
        }),
        commonjs({
            ignoreGlobal: true,
            include: 'node_modules/**',
            namedExports: {
                chai: [ 'expect', 'assert' ]
            }
        }),
        babel({
            babelrc: false,
            presets: [ 'es2015-rollup' ],
            plugins: [
                'fast-async',
                'transform-flow-strip-types',
                'transform-decorators-legacy',
                'transform-object-rest-spread',
                'transform-class-properties',
                'transform-export-extensions'
            ]
        }),
        json(),
        (!isServer && builtins()),
        (isProd && uglify({ warnings: true }, minify))
    ],
    targets: isProd
        ? ( isServer ? prodServerTargets : prodBrowserTargets )
        : ( isServer ? devServerTargets : devBrowserTargets )
};

result

Error transforming /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/src/mesh/index.js: Unexpected token (39:20) in /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/src/mesh/index.js
SyntaxError: Error transforming /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/src/mesh/index.js: Unexpected token (39:20) in /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/src/mesh/index.js
    at Parser.pp$4.raise (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:2454:13)
    at Parser.pp.unexpected (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:616:8)
    at Parser.pp.expect (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:610:26)
    at Parser.pp$3.parseMethod (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:2271:8)
    at Parser.pp$1.parseClassMethod (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1206:23)
    at Parser.pp$1.parseClass (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1186:12)
    at Parser.pp$3.parseExprAtom (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1977:17)
    at Parser.pp$3.parseExprSubscripts (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1854:19)
    at Parser.pp$3.parseMaybeUnary (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1831:17)
    at Parser.pp$3.parseExprOps (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1773:19)
    at Parser.pp$3.parseMaybeConditional (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1756:19)
    at Parser.pp$3.parseMaybeAssign (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1733:19)

In this case it's failing on the first defined class property because transform-class-properties hasn't been run on the code yet.

If I move babel above globals and before resolve, I still have the same error with process being undefined.

rollup.config.js

import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import builtins from 'rollup-plugin-node-builtins';
import globals from 'rollup-plugin-node-globals';
import commonjs from 'rollup-plugin-commonjs';
import json from 'rollup-plugin-json';
import uglify from 'rollup-plugin-uglify';
import { minify } from 'uglify-js';

const isProd = process.env.NODE_ENV === 'production';
const isServer = process.env.IS_SERVER;
const file = 'edgemesh.utils';

const prodServerTargets = [{ dest: 'server/' + file + '.min.js', format: 'cjs' }];
const prodBrowserTargets = [{ dest: 'dist/' + file + '.min.js', format: 'iife' }];
const devServerTargets = [
    { dest: 'server/' + file + '.js', format: 'cjs' },
    { dest: 'server/index.js', format: 'es' }
];
const devBrowserTargets = [
    { dest: 'dist/' + file + '.browser.js', format: 'iife' },
    { dest: 'dist/' + file + '.js', format: 'es' }
];

export default {
    entry: 'src/index.js',
    moduleName: 'utils',
    plugins: [
        babel({
            babelrc: false,
            presets: [ 'es2015-rollup' ],
            plugins: [
                'fast-async',
                'transform-flow-strip-types',
                'transform-decorators-legacy',
                'transform-object-rest-spread',
                'transform-class-properties',
                'transform-export-extensions'
            ]
        }),
        (!isServer && globals()),
        resolve({
            jsnext: true,
            main: true,
            browser: true,
            preferBuiltins: true
        }),
        commonjs({
            ignoreGlobal: true,
            include: 'node_modules/**',
            namedExports: {
                chai: [ 'expect', 'assert' ]
            }
        }),
        json(),
        (!isServer && builtins()),
        (isProd && uglify({ warnings: true }, minify))
    ],
    targets: isProd
        ? ( isServer ? prodServerTargets : prodBrowserTargets )
        : ( isServer ? devServerTargets : devBrowserTargets )
};

result

Could not resolve 'process' from /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-builtins/src/es6/util.js
Error: Could not resolve 'process' from /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-builtins/src/es6/util.js
    at Error (native)
    at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js:78:21
    at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/index.js:265:24
    at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:46:14
    at process (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:173:43)
    at ondir (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:188:17)
    at load (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:69:43)
    at onex (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:92:31)
    at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:22:47
    at FSReqWrap.oncomplete (fs.js:123:15)
calvinmetcalf commented 7 years ago

Put globals and builtins before resolve and after Babel

On Mon, Dec 26, 2016, 1:23 PM Randy Lebeau notifications@github.com wrote:

For some reason, if I dont run babel before globals I get errors compiling my code. Example:

rollup.config.js

import babel from 'rollup-plugin-babel';import resolve from 'rollup-plugin-node-resolve';import builtins from 'rollup-plugin-node-builtins';import globals from 'rollup-plugin-node-globals';import commonjs from 'rollup-plugin-commonjs';import json from 'rollup-plugin-json';import uglify from 'rollup-plugin-uglify';import { minify } from 'uglify-js'; const isProd = process.env.NODE_ENV === 'production';const isServer = process.env.IS_SERVER;const file = 'edgemesh.utils'; const prodServerTargets = [{ dest: 'server/' + file + '.min.js', format: 'cjs' }];const prodBrowserTargets = [{ dest: 'dist/' + file + '.min.js', format: 'iife' }];const devServerTargets = [ { dest: 'server/' + file + '.js', format: 'cjs' }, { dest: 'server/index.js', format: 'es' } ];const devBrowserTargets = [ { dest: 'dist/' + file + '.browser.js', format: 'iife' }, { dest: 'dist/' + file + '.js', format: 'es' } ]; export default { entry: 'src/index.js', moduleName: 'utils', plugins:

[ (!isServer && globals()),

resolve({ jsnext: true, main: true, browser: true, preferBuiltins: true }), commonjs({ ignoreGlobal: true, include: 'node_modules/**', namedExports: { chai: [ 'expect', 'assert' ] } }), babel({ babelrc: false, presets: [ 'es2015-rollup' ], plugins: [ 'fast-async', 'transform-flow-strip-types', 'transform-decorators-legacy', 'transform-object-rest-spread', 'transform-class-properties', 'transform-export-extensions' ] }), json

(), (!isServer && builtins()), (isProd && uglify({ warnings: true }, minify)) ], targets: isProd

? ( isServer ? prodServerTargets : prodBrowserTargets ) : ( isServer ? devServerTargets : devBrowserTargets ) };

result

Error transforming /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/src/mesh/index.js: Unexpected token (39:20) in /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/src/mesh/index.js SyntaxError: Error transforming /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/src/mesh/index.js: Unexpected token (39:20) in /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/src/mesh/index.js at Parser.pp$4.raise (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:2454:13) at Parser.pp.unexpected (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:616:8) at Parser.pp.expect (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:610:26) at Parser.pp$3.parseMethod (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:2271:8) at Parser.pp$1.parseClassMethod (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1206:23) at Parser.pp$1.parseClass (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1186:12) at Parser.pp$3.parseExprAtom (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1977:17) at Parser.pp$3.parseExprSubscripts (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1854:19) at Parser.pp$3.parseMaybeUnary (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1831:17) at Parser.pp$3.parseExprOps (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1773:19) at Parser.pp$3.parseMaybeConditional (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1756:19) at Parser.pp$3.parseMaybeAssign (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/acorn/dist/acorn.js:1733:19)

In this case it's failing on the first defined class property because transform-class-properties hasn't been run on the code yet.

If I move babel above globals and before resolve, I still have the same error with process being undefined.

rollup.config.js

import babel from 'rollup-plugin-babel';import resolve from 'rollup-plugin-node-resolve';import builtins from 'rollup-plugin-node-builtins';import globals from 'rollup-plugin-node-globals';import commonjs from 'rollup-plugin-commonjs';import json from 'rollup-plugin-json';import uglify from 'rollup-plugin-uglify';import { minify } from 'uglify-js'; const isProd = process.env.NODE_ENV === 'production';const isServer = process.env.IS_SERVER;const file = 'edgemesh.utils'; const prodServerTargets = [{ dest: 'server/' + file + '.min.js', format: 'cjs' }];const prodBrowserTargets = [{ dest: 'dist/' + file + '.min.js', format: 'iife' }];const devServerTargets = [ { dest: 'server/' + file + '.js', format: 'cjs' }, { dest: 'server/index.js', format: 'es' } ];const devBrowserTargets = [ { dest: 'dist/' + file + '.browser.js', format: 'iife' }, { dest: 'dist/' + file + '.js', format: 'es' } ]; export default { entry: 'src/index.js', moduleName: 'utils', plugins:

[

babel({ babelrc: false, presets: [ 'es2015-rollup' ], plugins: [ 'fast-async', 'transform-flow-strip-types', 'transform-decorators-legacy', 'transform-object-rest-spread', 'transform-class-properties', 'transform-export-extensions'

        ]
    }),
    (!isServer && globals()),

resolve({ jsnext: true, main: true, browser: true, preferBuiltins: true }), commonjs({ ignoreGlobal: true, include: 'node_modules/**', namedExports: { chai: [ 'expect', 'assert'

] } }), json(), (!isServer && builtins()), (isProd && uglify({ warnings: true }, minify)) ], targets: isProd

? ( isServer ? prodServerTargets : prodBrowserTargets ) : ( isServer ? devServerTargets : devBrowserTargets ) };

result

Could not resolve 'process' from /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-builtins/src/es6/util.js Error: Could not resolve 'process' from /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-builtins/src/es6/util.js at Error (native) at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js:78:21 at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/index.js:265:24 at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:46:14 at process (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:173:43) at ondir (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:188:17) at load (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:69:43) at onex (/Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:92:31) at /Users/rl/Sites/clients/edgemesh/edgemesh/edgemesh-utils/node_modules/browser-resolve/node_modules/resolve/lib/async.js:22:47 at FSReqWrap.oncomplete (fs.js:123:15)

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/calvinmetcalf/rollup-plugin-node-builtins/pull/23#issuecomment-269232658, or mute the thread https://github.com/notifications/unsubscribe-auth/ABE4nz4uP06rTmuSLfazZqrT8jdhL60vks5rMAYsgaJpZM4LVSYn .

SupremeTechnopriest commented 7 years ago

that results in:

'default' is not exported by node_modules/array-keys/index.js (imported by src/coms/index.js). For help fixing this error see https://github.com/rollup/rollup/wiki/Troubleshooting#name-is-not-exported-by-module

which is solved by resolve.

Maybe globals builtins and resolve should be rolled into one plugin? I haven't done too much looking under the hood of rollup, but seems to be some kind of race condition between plugins.

calvinmetcalf commented 7 years ago

There is some long term talk of combining globals with cjs and builtins with resolve, I'm on vacation rest of this week but can look into it next week, in the meantime the cjs config module is something I threw together a while back to get all the config in the right order

On Tue, Dec 27, 2016, 1:49 AM Randy Lebeau notifications@github.com wrote:

that results in:

'default' is not exported by node_modules/array-keys/index.js (imported by src/coms/index.js). For help fixing this error see https://github.com/rollup/rollup/wiki/Troubleshooting#name-is-not-exported-by-module

which is solved by resolve.

Maybe globals builtins and resolve should be rolled into one plugin? I haven't done too much looking under the hood of rollup, but seems to be some kind of race condition between plugins.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/calvinmetcalf/rollup-plugin-node-builtins/pull/23#issuecomment-269252607, or mute the thread https://github.com/notifications/unsubscribe-auth/ABE4nyXQzzqW23bQbZe4o_ZiNaQjAhN0ks5rMGCSgaJpZM4LVSYn .

SupremeTechnopriest commented 7 years ago

Okay Calvin sounds good. I'll use my master branch in the mean time. Enjoy the rest of your vacation and we will talk next week.

Sent from my iPhone

On Dec 27, 2016, at 1:41 PM, Calvin Metcalf notifications@github.com wrote:

There is some long term talk of combining globals with cjs and builtins with resolve, I'm on vacation rest of this week but can look into it next week, in the meantime the cjs config module is something I threw together a while back to get all the config in the right order

On Tue, Dec 27, 2016, 1:49 AM Randy Lebeau notifications@github.com wrote:

that results in:

'default' is not exported by node_modules/array-keys/index.js (imported by src/coms/index.js). For help fixing this error see https://github.com/rollup/rollup/wiki/Troubleshooting#name-is-not-exported-by-module

which is solved by resolve.

Maybe globals builtins and resolve should be rolled into one plugin? I haven't done too much looking under the hood of rollup, but seems to be some kind of race condition between plugins.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/calvinmetcalf/rollup-plugin-node-builtins/pull/23#issuecomment-269252607, or mute the thread https://github.com/notifications/unsubscribe-auth/ABE4nyXQzzqW23bQbZe4o_ZiNaQjAhN0ks5rMGCSgaJpZM4LVSYn . — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

calvinmetcalf commented 7 years ago

I'm back from vacation will take a look in the next day or 2

SupremeTechnopriest commented 7 years ago

Sounds good let me know how I can help. Im currently working on getting a webworkify rollup equivalent together.

calvinmetcalf commented 7 years ago

re webworkify you may be better off just creating a second bundle and pointing to it separately, I'm not sure how much easier doing object url style hacks are going to make it long term

SupremeTechnopriest commented 7 years ago

👋 @calvinmetcalf @rich-harris

I took a stab at combining rollup-plugin-node-resolve and rollup-plugin-node-builtins. I was getting some weird issues trying to rollup my project which admittedly has a very complex build chain. I also added a few more options:

browserModule

Add the browserModule property to package.json and set this to true to prefer browser built es over module. I needed this to get my isomorphic library to work with rollup.

moduleDirectory

Allows for usage of custom resolve paths with node-resolve. Same as setting NODE_PATH env. node_modules gets concatenated so you only have to add your custom library. In my case it was

{
    moduleDirectory: [ 'src' ]
}

preferBuiltins

Setting preferBuiltins to true will use browser ready es6 versions of node builtins where applicable.

builtins

The heavier libraries are still configurable. fs and crypto will resolve empty by default but can be configured to load browser replacements with the builtins option.

{
    builtins: {
        fs: true,
        crypto: true
    }
}

Pull Request

The plugin is located here. I haven't submitted a PR because I'm not sure if this is something you are interested in doing. If you would like me to submit a PR I will. Otherwise I will maintain my own version as these changes are required to build my project.

Thanks for your work on Rollup. While it was extremely frustrating for me to get up and running, it was most certainly worth the effort. Builds so fast!

calvinmetcalf commented 7 years ago

tot's forgot about this, thanks merged can publish latter today