{"id":19861322,"url":"https://github.com/neomjs/create-app","last_synced_at":"2025-05-02T04:30:34.118Z","repository":{"id":41612959,"uuid":"228720484","full_name":"neomjs/create-app","owner":"neomjs","description":"Create a neo.mjs workspace \u0026 app with the 1-liner npx neo-app","archived":false,"fork":false,"pushed_at":"2025-03-30T14:57:57.000Z","size":215,"stargazers_count":20,"open_issues_count":1,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-06T22:13:01.744Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://neomjs.github.io/pages/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neomjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["tobiu"]}},"created_at":"2019-12-17T23:41:16.000Z","updated_at":"2025-03-30T14:58:00.000Z","dependencies_parsed_at":"2023-02-14T00:31:01.762Z","dependency_job_id":"f6dab89a-3bbe-46aa-8c08-653c7815e9b2","html_url":"https://github.com/neomjs/create-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomjs%2Fcreate-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomjs%2Fcreate-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomjs%2Fcreate-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomjs%2Fcreate-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neomjs","download_url":"https://codeload.github.com/neomjs/create-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251986663,"owners_count":21675950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T15:08:38.807Z","updated_at":"2025-05-02T04:30:34.112Z","avatar_url":"https://github.com/neomjs.png","language":"JavaScript","funding_links":["https://github.com/sponsors/tobiu"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://npmcharts.com/compare/neo-app?minimal=true\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/neo-app.svg\" alt=\"Downloads\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/neo-app\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/neo-app.svg\" alt=\"Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/neo-app\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/neo-app.svg\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/6p8paPq\"\u003e\u003cimg src=\"https://img.shields.io/discord/656620537514164249?label=discord%20chat\" alt=\"Chat\"\u003e\u003c/a\u003e\n  \u003ca href=\"./CONTRIBUTING.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/PRs-welcome-green.svg\" alt=\"PRs Welcome\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# neo.mjs create-app\nCreate a new \u003ca href=\"https://github.com/neomjs/neo\"\u003eneo.mjs\u003c/a\u003e app (workspace) using the 1-liner:\n\u003e npx neo-app\n\nnpx neo-app works on macOS, Linux and Windows 10.\u003cbr\u003e\nIf errors occur for your local environment, please \u003ca href=\"https://github.com/neomjs/create-app/issues/new\"\u003efile an issue\u003c/a\u003e.\u003cbr\u003e\n\nPlease ensure you have node \u0026 npm installed (npx is available for npm 5.2+).\n\nYou ***do not*** need to clone this repository or globally install the neo-app npm package.\n\nPlease take a couple of minutes to read this \u003ca href=\"https://github.com/neomjs/create-app/blob/master/README.md\"\u003eREADME.md\u003c/a\u003e file first.\n\n## Content\n1.  \u003ca href=\"#quick-overview\"\u003eQuick Overview\u003c/a\u003e\n2.  \u003ca href=\"#script-options\"\u003eScript Options\u003c/a\u003e\n3.  \u003ca href=\"#starting-a-local-web-server\"\u003eStarting a local web-server\u003c/a\u003e\n4.  \u003ca href=\"#viewing-your-app-in-development-mode\"\u003eViewing your app in development mode\u003c/a\u003e\n5.  \u003ca href=\"#viewing-your-app-in-dist-modes\"\u003eViewing your app in dist modes\u003c/a\u003e\n6.  \u003ca href=\"#workspace-content\"\u003eWorkspace Content\u003c/a\u003e\n7.  \u003ca href=\"#packagejson-scripts\"\u003epackage.json Scripts\u003c/a\u003e\n8.  \u003ca href=\"#working-on-your-new-neomjs-app\"\u003eWorking on your new neo.mjs App\u003c/a\u003e\n9.  \u003ca href=\"#learning-neomjs\"\u003eLearning neo.mjs\u003c/a\u003e\n10.  \u003ca href=\"#feedback-and-questions\"\u003eFeedback and Questions\u003c/a\u003e\n11.  \u003ca href=\"#alternative-options-to-create-an-app\"\u003eAlternative options to create an App\u003c/a\u003e\n12.  \u003ca href=\"#kudos\"\u003eKudos\u003c/a\u003e\n\n## Quick Overview\n\u003e npx neo-app\n\nRunning the script will prompt 3 questions:\n1. Choose a workspace folder name. This folder will get created inside the terminal / CMD folder you are in.\u003cbr\u003e\n    You can rename it later on if needed.\u003cbr\u003e\n    \u003cimg width=\"500px\" src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/workspace.png\"\u003e\n2. Choose an app name (Pascal Case)\u003cbr\u003e\n    \u003cimg width=\"500px\" src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/appname.png\"\u003e\n3. Choose the themes you want to use (you can change this later on inside the neo-config.json)\u003cbr\u003e\n    \u003cimg width=\"500px\" src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/themes.png\"\u003e\n\n## Script Options\nYou can pass additional params to the script:\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/scriptOptions.png\"\u003e\n\nChoose a workspace folder name:\n\u003e npx neo-app -w workspace\n\nChoose an app name:\n\u003e npx neo-app -n MyApp\n\nChoose the themes:\n\u003e npx neo-app -t both\n\nOf course, you can combine the options, e.g.:\n\u003e npx neo-app -w workspace -n MyApp -t both\n\n## Starting a local web-server\nBy default, npx neo-app will start a webpack dev-server right after the build.\n\nA new browser tab should open right away:\u003cbr\u003e\n\u003cimg width=\"700px\" src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/serverStart.png\"\u003e\n\nIn case you do not want to start the dev-server automatically, you can use the -s option:\n\u003e npx neo-app -s false\n\nYou can use a different web-server of your choice (e.g. webstorm) or you can start the default one manually later:\n\u003e cd workspace\n\u003e\n\u003e npm run server-start\n\n## Viewing your app in development mode\nThe dev mode works in all major browsers (Chromium, Firefox \u0026 Safari).\n\nTo view your new app, you can navigate to:\n\u003e http://localhost:8096/apps/myapp/\n\n\u003cimg width=\"1100px\" src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/serverMyApp.png\"\u003e\n\nThe beauty inside this screen is:\n1.  You can see 4 threads inside the bottom left edge of the console\n2.  Your app as well as most parts of neo.mjs run within the App thread\n3.  You get the real JS modules directly into your browser\n    1.  No need to transpile JS code in this mode\n    2.  No need for source-maps\n\n## Viewing your app in dist modes\ndist/development is using webpack based builds (source-maps, not minified)\n\u003e http://localhost:8096/dist/development/apps/myapp/\n\n\u003cimg width=\"700px\" src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/Safari.png\"\u003e\n\ndist/production is using webpack based builds (no source-maps, minified)\n\u003e http://localhost:8096/dist/production/apps/myapp/\n\n\u003cimg width=\"700px\" src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/Firefox.png\"\u003e\n\n## Workspace Content\nUsing the script will create the following content:\u003cbr\u003e\n\u003cimg width=\"800px\" src=\"https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/images/createApp/workspaceContent.png\"\u003e\n\n1.  .gitignore has a basic setup excluding IDE related files, the dist folder \u0026 the package-lock.json\n2.  apps contains the source files of your new app. You can create multiple apps as needed.\n3.  buildScripts contains meta-infos (in theory this could get stored inside the neo.mjs node_module, but then every\nframework version update would require to re-create it)\n4.  dist contains the development \u0026 production builds of your app, as well as the docs app\n5.  docs contains a copy of the neo.mjs non dist version of the docs app. This version does show documentation views of\nyour app as well as all neo.mjs examples\n6.  node_modules =\u003e all related dependencies which are required for the build scripts \u0026 the dev-server\n7.  package.json =\u003e a dummy version; feel free to change it\n\n## package.json Scripts\n```\n\"server-start\": \"webpack-dev-server --open\",\n\"build-all\": \"node ./node_modules/neo.mjs/buildScripts/buildAll.js -n\",\n\"build-all-questions\": \"node ./buildScripts/buildAll.js\",\n\"build-my-apps\": \"node ./node_modules/neo.mjs/buildScripts/webpack/buildMyApps.js\",\n\"build-themes\": \"node ./node_modules/neo.mjs/buildScripts/webpack/buildThemes.js\",\n\"build-threads\": \"node ./node_modules/neo.mjs/buildScripts/webpack/buildThreads.js\",\n\"create-app\": \"node ./node_modules/neo.mjs/buildScripts/createApp.js\",\n\"generate-docs-json\": \"node ./node_modules/neo.mjs/buildScripts/docs/jsdocx.js\",\n\"test\": \"echo \\\"Error: no test specified\\\" \u0026\u0026 exit 1\"\n```\n\nYou need to enter the workspace folder inside your terminal / CMD.\n\u003e cd workspace\n\nYou can run each script via\n\u003e npm run \\\u003cscript-name\\\u003e\n\nSome IDEs like webstorm can show npm scripts as a toolbox, so you can just click on them instead.\n\n1. server-start: Starts the webpack dev-server\n2. build-all: npm install \u0026 builds literally everything.\n3. build-all-questions: same as build all, but you can choose what to build using the inquirer interface.\n4. build-themes: builds the themes for dev and / or prod and lets you choose if want to use CSS variables.\n5. build-threads: builds main, data \u0026 vdom (or any combinations) for dev and / or prod.\n6. create-app: add an additional app to your project. You can also trigger npx neo-app multiple times.\n7. generate-docs-json: When you change your app code (e.g. adding new files) and want to see those changes inside the\nDocs app, you need to run this script to update the content.\n\n## Working on your new neo.mjs App\nIt is recommended to use the development mode (non dist version) for developing your App(s).\nThis way you can just reload the App page whenever you change the code base.\nNo need for source-maps and a very smooth debugging experience.\n\nYou ideally want to start with changing the view/MainContainer.mjs file.\n\nOnce you get to a point where you want to test your changes inside the dist versions, take a look at:\n\u003ca href=\"#packagejson-scripts\"\u003epackage.json Scripts\u003c/a\u003e.\n\n## Learning neo.mjs\nTake a look into the new \u003ca href=\"https://neomjs.com/dist/production/apps/portal/#/learn\"\u003eLearning Section\u003c/a\u003e\n\n## Feedback and Questions\nFeel free to use one of these options (or both):\u003cbr\u003e\n\u003ca href=\"https://join.slack.com/t/neotericjs/shared_invite/enQtNDk2NjEwMTIxODQ2LWRjNGQ3ZTMzODRmZGM2NDM2NzZmZTMzZmE2YjEwNDM4NDhjZDllNWY2ZDkwOWQ5N2JmZWViYjYzZTg5YjdiMDc\"\u003eSlack Channel Invite Link\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://discord.gg/6p8paPq\"\u003eDiscord Chat Invite Link\u003c/a\u003e\n\n## Alternative options to create an App\n1. Use \u003ca href=\"https://github.com/neomjs/create-app\"\u003enpx neo-app\u003c/a\u003e\n2. Clone or fork the \u003ca href=\"https://github.com/neomjs/workspace\"\u003eneo.mjs workspace\u003c/a\u003e (if there are any issues with npx neo-app)\n3. In case you want to get the \u003ca href=\"https://github.com/neomjs/neo\"\u003eneomjs/neo\u003c/a\u003e repository running locally, please take a look at\n   the \u003ca href=\"https://github.com/neomjs/neo/blob/dev/.github/GETTING_STARTED.md\"\u003eneo.mjs Getting Started Guide\u003c/a\u003e.\n   Step 6 creates a new App inside neo/apps\n\n## Kudos\nThe npx neo-app script is deeply inspired by \u003ca href=\"https://github.com/facebook/create-react-app\"\u003eCreate React App\u003c/a\u003e.\n\n\u003cbr\u003e\u003cbr\u003e\nCopyright (c) 2019 - today, Tobias Uhlig\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneomjs%2Fcreate-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneomjs%2Fcreate-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneomjs%2Fcreate-app/lists"}