Skip to content

Support template sources outside of npmjs.com #8844

Closed

Description

@andredigenova

Is your proposal related to a problem?

Using create-react-app templates outside of the npmjs.com ecosystem is painful. It seems the only viable way to do it is pull the code down yourself and use the file: syntax, or host a tarball somewhere.

This is fairly important for template code bases that are private since there doesn't appear to be a no-cost way of hosting private packages on npmjs.com.

Describe the solution you'd like

There are a couple solutions to this and I think both of them would be universally useful.

  • Support git repo URI syntax in the --template argument.
  • Support an argument to specify a 3rd party npm registry for the template

I'm sure there are probably others I didn't think of.

Describe alternatives you've considered

Setting a 3rd-party npm package registry on npm globally before running npx create-react-app seems to be broken. I tested it with Github's npm registry and it failed with an odd error part way through project setup.

All variations of git URI syntax I've tried don't seem to work and produce errors mostly related to cra-template getting injected when it shouldn't be.

Additional context

(Write your answer here.)

Activity

  1. ricardoamedeiros commented on Apr 21, 2020

    @ricardoamedeiros

    Is your proposal related to a problem?

    Using create-react-app templates outside of the npmjs.com ecosystem is painful. It seems the only viable way to do it is pull the code down yourself and use the file: syntax, or host a tarball somewhere.

    This is fairly important for template code bases that are private since there doesn't appear to be a no-cost way of hosting private packages on npmjs.com.

    Describe the solution you'd like

    There are a couple solutions to this and I think both of them would be universally useful.

    • Support git repo URI syntax in the --template argument.
    • Support an argument to specify a 3rd party npm registry for the template

    I'm sure there are probably others I didn't think of.

    Describe alternatives you've considered

    Setting a 3rd-party npm package registry on npm globally before running npx create-react-app seems to be broken. I tested it with Github's npm registry and it failed with an odd error part way through project setup.

    All variations of git URI syntax I've tried don't seem to work and produce errors mostly related to cra-template getting injected when it shouldn't be.

    Additional context

    (Write your answer here.)

    Hi @andredigenova,

    I have the same problem. Your issue is similar the issue #8425.

    I did all set up for private npm, but not working.

  2. ricardoamedeiros commented on Apr 22, 2020

    @ricardoamedeiros

    I discovered the problem. The template path within node_modules was not being found. I made the pull request with the following adjustment:

    javascript:

    create-react-app/packages/react-scripts/scripts/init.js

    befor:

    const templatePath = path.dirname( require.resolve(${templateName}/package.json, { paths: [appPath] }) );

    after:

    const templatePath = path.dirname( require.resolve(${templateName}/package.json, { paths: [${appPath}/node_modules] }) );

  3. mrmckeb commented on Apr 29, 2020

    @mrmckeb
    Contributor

    Hi @andredigenova,

    This should work fine with third-party registries. I use it with Verdaccio on a work-related project. Can you please share your template?

    Also, note that templates are required to have a main field in them to work until our next release, see:
    e0b179c#diff-1453d9590326c639309801105bc967c2

  4. self-assigned this
    on Apr 29, 2020
  5. ricardoamedeiros commented on Apr 29, 2020

    @ricardoamedeiros

    With field "main" in package.json worked.

  6. mrmckeb commented on Apr 29, 2020

    @mrmckeb
    Contributor

    Thanks for the update! I'll close this off. Sorry again, we'll get the fix out ASAP.

  7. locked and limited conversation to collaborators on May 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions