Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

starter kit #356

Open
LexRiver opened this issue Dec 23, 2019 · 6 comments
Open

starter kit #356

LexRiver opened this issue Dec 23, 2019 · 6 comments

Comments

@LexRiver
Copy link

Hello, I have some strange errors with the recent versions when trying to import component from another file, like

Uncaught TypeError: vidom: Unexpected type of element is passed to the elements factory.
    at createElement$1 (vidom.js:3124)

I know it is somehow related to my typescript settings.
Can you please provide the very minimal project that works for you.
I'm looking for proper settings for

  • tsconfig.json
  • webpack.config.json
  • .babelrc
  • package.json

I think that it would be useful for other users also.
react has create-react-app to get started but vidom is missing it.

@dfilatov
Copy link
Owner

Hi, @LexRiver!
Could you investigate after which version it appears? Probably it's a bug.

@LexRiver
Copy link
Author

LexRiver commented Dec 25, 2019

No, seems like it's some error in my webpack config.
Because I can import .jsx files without any error.

Now I've switched to rollup and it works for me.

@dfilatov
Copy link
Owner

Here's a part of my webpack config for processing tsx files:

{
    test: /\.tsx$/,
    use: [
        {
            loader: 'babel-loader',
            options: {
                plugins: [['babel-plugin-vidom-jsx', { autoRequire: false }]]
            }
        },          
        {
            loader: 'ts-loader',
            options: {
                transpileOnly: true,
                compilerOptions: {
                    sourceMap: true,
                    importHelpers: true,
                    jsx: 'preserve'
                }
            }
        }
    ]
}

@LexRiver
Copy link
Author

yes, it seems to work now, but I have a runtime error
Uncaught ReferenceError: vidom is not defined
unless I add a script reference in my html:
<script src="https://unpkg.com/[email protected]/dist/vidom.js"></script>
is it the way it should be?

@dfilatov
Copy link
Owner

No, it isn't. You need to import vidom in tsx files.

// MyComponent.tsx

import * as vidom from 'vidom';

class MyComponent extends vidom.Component {
    onRender(): vidom.Node {
        return (
            <div>content</div>
        );
    }
}

@LexRiver
Copy link
Author

vidom-test-webpack.zip
Here I'm trying to create minimal possible project, can you please check?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants