Giter Site home page Giter Site logo

jaredpalmer / tsdx Goto Github PK

View Code? Open in Web Editor NEW
11.2K 46.0 504.0 3.71 MB

Zero-config CLI for TypeScript package development

Home Page: https://tsdx.io

License: MIT License

JavaScript 54.37% TypeScript 42.37% HTML 0.41% CSS 2.85%
typescript rollup npm yarn react packaging react-dom bundling jest

tsdx's People

Contributors

agilgur5 avatar aleclarson avatar allcontributors[bot] avatar arthurdenner avatar audiolion avatar dependabot[bot] avatar fredyc avatar goznauk avatar greenkeeper[bot] avatar hedgerh avatar jakegavin avatar jamesgeorge007 avatar jaredpalmer avatar kylemh avatar leonardodino avatar lookfirst avatar mfolnovic avatar n3tr avatar natemoo-re avatar netzwerg avatar nstfkc avatar pabloszx avatar pete-redmond-cko avatar quentin-sommer avatar sadsa avatar sam-kvale-sap avatar samdenty avatar swyxio avatar techieshark avatar yordis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tsdx's Issues

Unclear error for missing "source"

Current Behavior

Tried dropping TSDX into an existing library, and got this:

> [email protected] build /Users/jasonetco/dev/actions-toolkit
> tsdx build

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined

    at assertPath (path.js:39:11)
    at Object.resolve (path.js:1088:7)
    at Object.exports.resolveApp (/Users/jasonetco/dev/actions-toolkit/node_modules/tsdx/dist/utils.js:19:27)
    at Object.createRollupConfig (/Users/jasonetco/dev/actions-toolkit/node_modules/tsdx/dist/createRollupConfig.js:29:24)
    at createBuildConfigs (/Users/jasonetco/dev/actions-toolkit/node_modules/tsdx/dist/index.js:30:30)
    at prog.command.describe.action (/Users/jasonetco/dev/actions-toolkit/node_modules/tsdx/dist/index.js:130:37)
    at Sade.parse (/Users/jasonetco/dev/actions-toolkit/node_modules/sade/lib/index.js:153:56)
    at Object.<anonymous> (/Users/jasonetco/dev/actions-toolkit/node_modules/tsdx/dist/index.js:168:6)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)

After some ๐Ÿค”, turns out it was expecting a "source" property in my package.json.

Expected behavior

A handy-dandy error like:

Hey you need a `source` property in your package.json, pointing to the entrypoint of your library

Your environment

Software Version(s)
TSDX v0.0.25

README instructions don't work

Current Behavior

I'm following the README instructions, and it seems like they're geared towards tsdx being an NPM script in an existing project?

$ cd ~/dev
$ yarn tsdx create my-lib
yarn run v1.13.0
error Couldn't find a package.json file in "/Users/jasonetco/dev"
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I also tried yarn global add tsdx and then running tsdx create my-lib:

Error: /Users/jasonetco/dev/package.json: ENOENT: no such file or directory, open '/Users/jasonetco/dev/package.json'

This even happens when I run tsdx --version.

Expected behavior

I could be misunderstanding the tool, but I'm guessing this should scaffold out the folder? Not sure why it's trying to read an existing package.json.

Your environment

Software Version(s)
npm/Yarn npm: 6.4.1 yarn: 1.13.0
Operating System MacOS Mojave

upgrade to Rollup 1.0

Current Behavior

rollup 1.0 was released in december: rollup/rollup#2293

including dynamic imports, which i want

any considerations that have held you back that we should think about?

No tests found - exit code 1

Current Behavior

After installing tsdx globally and creating a new project I ran npm test and it prompts the following to console:

No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
In C:\dev\hidash
  13 files checked.
  testMatch: C:/dev/hidash/test/**\?(*.)(spec|test).{ts,tsx} - 0 matches
  testPathIgnorePatterns: \\node_modules\\ - 13 matches
  testRegex:  - 0 matches
Pattern:  - 0 matches

Also when filtering for blah.test.ts manually it won't show up.

Expected behavior

To get the default test to run and pass after installing out of the box.

Your environment

Software Version(s)
TSDX 0.5.4
TypeScript as bundled
Browser (not involved)
npm 6.7.0
Operating System Windows 10

Out-of-the-box `npm test` fails

Current Behavior

$ npx tsdx create tsdx-test
$ cd tsdx-test && npm test

> [email protected] test /Users/jasonetco/dev/tsdx-test
> tsdx test

โ— Validation Error:

  Module /Users/jasonetco/dev/tsdx-test/node_modules/tsdx/node_modules/ts-jest in the transform option was not found.
         <rootDir> is: /Users/jasonetco/dev/tsdx-test

  Configuration Documentation:
  https://jestjs.io/docs/configuration.html

npm ERR! Test failed.  See above for more details.

[Feature] .env support like CRA and @vue/cli

Current Behavior

process.env.* transpiles as is

Desired Behavior

declared variable with prefix TLDX_* transpiles to its values. Other vars transpiles as is

if .env contents:

TLDX_KEY=key
KEY=blah-blah

then process.env.TLDX_KEY transpiles to key and process.env.KEY transpiles to process.env.KEY

Who does this impact? Who is this for?

This is for my team. We building the package with opt-in features and some client-specific keys. Also, CRA and @vue/cli have this feature too.

Consider splitting out the create command

Current Behavior

tsdx create is just another cli command. However, it shares almost zero code with the other commands and in fact makes things harder for them since certain values like paths.js are all undefined.

Desired Behavior

Split out the creation script into a separate package or isolate the code so that it does not interfere or cause headaches throughout the rest of the codebase

Suggested Solution

  • Make a separate create-ts-project package. Thanks to the create prefix, it will work with yarn create. So people will be able to enter yarn create ts-project (instead of using npx).
  • Gluegun appears to have support for templating use .ejs, so that's worth evaluating during #17

Who does this impact? Who is this for?

Errbody.

Creation failure - The "file" argument must be of type string

Current Behavior

When running npx tsdx create myapp, the installation fails with the error:

โœ” Created myapp
โœ– Failed to install dependencies
TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string. Received type object

    at validateString (internal/validators.js:125:11)
    at normalizeSpawnArguments (child_process.js:399:3)
    at Object.spawn (child_process.js:532:38)
    at Object.module.exports [as default] (/Users/james.quigley/.npm/_npx/49155/lib/node_modules/tsdx/node_modules/execa/index.js:205:26)
    at prog.version.command.describe.action (/Users/james.quigley/.npm/_npx/49155/lib/node_modules/tsdx/dist/index.js:172:30)

Expected behavior

Should successfully generate the full template, install deps, etc.

Suggested solution(s)

Seems like a type error. Can investigate more later unless someone beats me to it

Additional context

Your environment

Software Version(s)
TSDX 0.5.0
TypeScript
Browser
npm/Yarn 6.9/1.15.2
Operating System MacOS Mojave

Relative imports are treated as external on Windows

Current Behavior

My code isn't getting bundled because tsdx treats everything as external modules, the resulting bundle only contains the compiled index.ts file.

Expected behavior

My files shouldn't be treated as external modules.

Suggested solution(s)

Could it be something related to the external function? https://github.com/palmerhq/tsdx/blob/v0.5.7/src/utils.ts#L19

Additional context

I'm getting the following warning for all my .ts files (except the root index.ts file):

No name was provided for external module 'C:/xyz/xyz/xyz/xyz.ts' in output.globals โ€“ guessing 'xyz_ts'

Your environment

Software Version(s)
TSDX 0.5.7
TypeScript 3.4.5
Browser Chrome Version 74.0.3729.131
npm/Yarn Node v10.11.0, npm 6.4.1
Operating System Windows 10

`yarn jest` TypeError: xxx.default is not a constructor -- default export not output as expected

Current Behavior

tsdx yarn test will report error:

TypeError: xxx.default is not a constructor

when import a class created by tsdx and try to instance it.

reproduction:

  1. create a lib using tsdx
tsdx create mylib-a
  1. modify index.ts to a class
// mylib-a/src/index.ts
export default class MyLibA {}
  1. build
yarn build
  1. create another lib using tsdx called mylib-b
  2. move mylib-a to mylib-b/src/
  3. import mylib-a in mylib-b/test/blah.test.ts
import MyLibA from '../src/mylib-a';
// this line is error when `yarn test`
// TypeError: xxx.default is not a constructor
const instance = new MyLibA();
  1. yarn test

If I don't use default to export class:

export class MyLibA {}

And import like this:

import { MyLibA } from ...;

Everything will be ok, but it is just a workaround.

Expected behavior

Suggested solution(s)

Additional context

Your environment

Software Version(s)
TSDX ^0.5.6
TypeScript ^3.4.5
Browser -
npm/Yarn [email protected]
Operating System macOS Mojave version 10.14.4 (18E226)

Add prettier

eslint and prettier are the basic tools for any repo these days. You've got the issue for eslint, so I've thought I'd open up one for prettier too.

Skipping a format results in warning about an unhandled promise rejection

Current Behavior

Skipping one of the module formats causes a warning about an unhandled promise rejection due to an invalid rollup config.

> tsdx build --format cjs,es

(node:94549) UnhandledPromiseRejectionWarning: Error: You must supply an options object to rollup
    at getInputOptions$1 (/Users/jake/Desktop/mylib/node_modules/rollup/dist/rollup.js:18675:15)
    at Object.rollup (/Users/jake/Desktop/mylib/node_modules/rollup/dist/rollup.js:18732:30)
    at asyncro_1.default.map (/Users/jake/Desktop/mylib/node_modules/tsdx/dist/index.js:293:41)
    at Array.map (<anonymous>)
    at Object.n [as map] (/Users/jake/Desktop/mylib/node_modules/asyncro/dist/asyncro.js:1:100)
    at prog.command.describe.option.example.option.example.option.example.option.example.action (/Users/jake/Desktop/mylib/node_modules/tsdx/dist/index.js:292:43)
(node:94549) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
(node:94549) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
โœ“ Creating entry file 3.5 secs

As far as I can tell, the build still succeeds though so this isn't a huge issue.

Expected behavior

Ideally, the build would run without any warnings.

Suggested solution(s)

One possible solution would be to filter falsey values from the createBuildConfigs call: #77

Additional context

Thanks for the work you put into this!

Your environment

Software Version(s)
TSDX 0.5.5
TypeScript 3.4.5
Browser Chrome
npm/Yarn npm 6.4.1
Operating System MacOS 10.13.6

Multiple entries

This was technically added in 0.3.0, but needs documentation. Additionally, we need to think through dev/prod builds for each output and if that is what people actually want or nah.

Creation failure - TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object

Current Behavior

When running npx tsdx create mylib, the installation fails with the error:

โˆš Created mylib
ร— Failed to install dependencies
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object

    at assertPath (path.js:39:11)
    at Object.normalize (path.js:285:5)
    at parseNonShell (C:\Users\kevin\AppData\Roaming\npm-cache\_npx\12552\node_modules\tsdx\node_modules\execa\node_modules\cross-spawn\lib\parse.js:54:31)
    at Function.parse [as _parse] (C:\Users\kevin\AppData\Roaming\npm-cache\_npx\12552\node_modules\tsdx\node_modules\execa\node_modules\cross-spawn\lib\parse.js:122:49)
    at handleArgs (C:\Users\kevin\AppData\Roaming\npm-cache\_npx\12552\node_modules\tsdx\node_modules\execa\index.js:41:23)
    at Object.module.exports [as default] (C:\Users\kevin\AppData\Roaming\npm-cache\_npx\12552\node_modules\tsdx\node_modules\execa\index.js:199:17)
    at prog.version.command.describe.action (C:\Users\kevin\AppData\Roaming\npm-cache\_npx\12552\node_modules\tsdx\dist\index.js:172:30)

Expected behavior

Should successfully generate the full template, install deps, etc.

Additional context

I tried poking around in the code and can see that it's failing on

await execa(getInstallArgs(getInstallCmd(), deps));

As far as I can tell, it's trying to run via yarn on my machine.

Your environment

Software Version(s)
TSDX 0.5.0
TypeScript
Browser
npm/Yarn 6.4.1/1.13.0
Operating System Windows 10 Pro (1809)

TypeError: Cannot read property 'find' of undefined

I have an existing project that uses microbundle and I wanted to give this project a shot.

Current Behavior

When I run tsdx build I get this error, but the outputted dist folder seems fine.

โฏ npx tsdx build
โœ“ Creating entry file 2.1 secs
(node:7935) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'find' of undefined
    at then.then (/home/z0al/x/github/stash/packages/core/node_modules/rollup-plugin-size-snapshot/dist/treeshakeWithRollup.js:67:36)
(node:7935) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:7935) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Expected behavior

No errors

Suggested solution(s)

Additional context

Your environment

Software Version(s)
TSDX 0.5.4
TypeScript 3.4.5
Browser N/A
npm/Yarn npm
Operating System Debian/Linux

Error: ENOENT: no such file or directory -- templates dir is missing

Current Behavior

When I run tsdx create mylib I receive the following error:

Error: ENOENT: no such file or directory, stat '/usr/local/lib/node_modules/tsdx/templates/basic'

Expected behavior

I'm not sure,I haven't gotten it to work yet ๐Ÿ˜„

Suggested solution(s)

N/A

Additional context

I have seen other similar errors reported and they were marked as closed. Not sure why I'm having this issue.

Your environment

Software Version(s)
TSDX 0.5.3
TypeScript 3.4.5
Browser Google Chrome
npm/Yarn 6.9.0
Operating System 10.14.4

code splitting support

Current Behavior

currently we bundle single files, named per environment/module format.

to support code splitting (which is the default behavior of Rollup v1 which we just upgraded to) we'll have to evolve this to a folder format with multiple files.

right now this https://github.com/sw-yx/react-netlify-identity-widget/blob/master/src/index.tsx#L8 doesnt produce a separate bundle for me :(

Desired Behavior

code splitting support.

Suggested Solution

as above

Who does this impact? Who is this for?

all users, partiuclarly React users, who want to offer code splitting as a feature

Describe alternatives you've considered

no change

Additional context

i'm unsure what existing priorities this may conflict with for you.

`create` script fails and is looking for a `package.json` again

Current Behavior

~/dev/tsdx-test
$ npx tsdx create mylib
/Users/jasonetco/dev/tsdx-test/package.json: ENOENT: no such file or directory, open '/Users/jasonetco/dev/tsdx-test/package.json'

~/dev/tsdx-test
$ npm i -g tsdx
...
+ [email protected]
added 940 packages from 512 contributors in 24.628s

~/dev/tsdx-test took 25s 254ms
$ tsdx create mylib
โœ– Failed to create mylib
Error: ENOENT: no such file or directory, stat '/Users/jasonetco/.nvm/versions/node/v10.13.0/lib/node_modules/tsdx/template'

Possibly relates to #2

Your environment

Software Version(s)
TSDX v0.0.25

react library with scss modules support

Current Behavior

Is not possible to use it with scss and module

Desired Behavior

Be able to use it as CRA

scss file: helloWorld.module.scss

ts: import style from "./helloWorld.module.scss"

Suggested Solution

Have a look on CRA and see how it works

Who does this impact? Who is this for?

All the developer that want to create a library with multiple modules and have support of scss

[0.3.0] dist/index.js is still a nonexistent file

Current Behavior

despite the recent improvements, tsdx still scaffolds to something like this:

{
  "name": "podcats",
  "version": "0.1.5",
  "main": "dist/index.js",
  "umd:main": "dist/podcats.umd.production.js",
  "module": "dist/podcats.es.production.js",
  "typings": "dist/index.d.ts",
  "files": [
    "dist"
  ],
  "scripts": {
    "start": "tsdx watch",
    "build": "tsdx build",
    "test": "tsdx test"
  },
  "devDependencies": {
    "@types/jest": "^23.3.13",
    "tsdx": "^0.3.0",
    "typescript": "^3.2.4",
  }
}

in particular, i believe that "main": "dist/index.js", is invalid.

as a result, the library builds, but when it is required into other apps, node resolution fails to find the library.

Expected behavior

i may be wrong but i think it should point to "main": "dist/index.js",

Better Logging

The rollup output is wayyyyyy too verbose. Need to make it concise.

`dist` not included in default publish experience

Current Behavior

Currently the scaffolded package.json looks like this:

{
  "source": "src/index.ts",
  "main": "index.js",
  "umd:main": "dist/podcats.umd.production.js",
  "module": "dist/podcats.es.production.js",
  "typings": "dist/index.d.ts",
  "scripts": {
    "start": "tsdx watch",
    "build": "tsdx build",
    "test": "tsdx test"
  },
  "devDependencies": {
// etc
  }
}

when i publish to npm, nothing in the dist folder gets included. this could partially be because of the .gitignore (in which case we should add an .npmignore?) but i think the "main": "index.js", line is also a problem. I'm quite inexperienced at this so i'm not sure how to fix but i'm sure you can.

Expected behavior

i can just type 'yarn publish' at the root level and it "just works"

Suggested solution(s)

fix "main" field?

Your environment

Software Version(s)
TSDX 0.2.5
TypeScript 3.2.4
Browser chrome
  System:
    OS: macOS High Sierra 10.13.4
    CPU: (4) x64 Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz
    Memory: 127.70 MB / 16.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 11.0.0 - /usr/local/bin/node
    Yarn: 1.12.1 - /usr/local/bin/yarn
    npm: 6.4.1 - /usr/local/bin/npm
  Browsers:
    Chrome: 71.0.3578.98
    Safari: 11.1

install tslib by default

Libraries should be using tslib to eliminate duplicate code.

Also need "importHelpers": true in the tsconfig.json

General notes

๐Ÿ‘‹ In trying out this tool, I wanted to leave some general notes for you. Feel free to close this issue right away, or use it to spawn further issues - totally up to you.


Tiny thing in the generated package.json:

image


Would be cool to supe up the bootstrap logs:

image

Adding some emojis, maybe some color?

โžก๏ธ Bootstrapping new project...
๐Ÿ“ฆ Installing dependencies...

โœ… Success! TSDX just bootstrapped a brand new project for you. To get started, run:

      cd my-lib
      yarn start

Potentially add a linter - its a hot topic, and I'm not sure how opinionated you want this tool to be. Maybe a section in the README? I mention it because to me, "out of the box" includes a linter - but it may not to other people so ๐Ÿคทโ€โ™‚๏ธ


Generated README is a little bare which is totally fine, but it could be nice to add something like this: https://github.com/jasonetco/stub-template#readme


Now, off to try using it with a real project...

Can't use hooks when `react` & `react-dom` are dev dependencies

Current Behavior

Thank you for this project!

I'm not sure if I missed or didn't understand something, but when choosing the react template, react & react-dom are added as dev dependencies. When you then try to use a hook inside your library, you get a react-invalid-hook-call error. It works fine when removing them as dev dependencies and running yarn again.

Example:

export const Thing = () => {
  const [fooBar, setFooBar] = React.useState('foo');

  return (
    <div onClick={() => setFooBar('bar')}>
      the snozzberries taste like {fooBar}
    </div>
  );
};

Expected behavior

I would expect the template to enable me to use hooks.

Suggested solution(s)

No idea if "just removing the dev dependencies" is the proper solution. It at least worked for me.

Your environment

Software Version(s)
TSDX 0.5.4
TypeScript 3.4.5
Browser Chrome 74.0.3729.108
npm/Yarn Yarn 1.12.3
Operating System MacOS 10.14.4

CLI version is missing

Current Behavior

npx tsdx -v returns tsdx, 0.0.0

Expected behavior

proper version

Your environment

Software Version(s)
TSDX 0.3.0
TypeScript 3.x
Browser chrome

    OS: macOS High Sierra 10.13.4
    Node: 10.13.0 - ~/.nvm/versions/node/v10.13.0/bin/node
    Yarn: 1.12.1 - /usr/local/bin/yarn
    npm: 6.4.1 - ~/.nvm/versions/node/v10.13.0/bin/npm

compress option in `terser` inside production es rollup config produces invalid JS

Current Behavior

here is my repo i'm working on https://github.com/sw-yx/react-netlify-identity-widget/tree/rollupProductionIssue

if you:

yarn build
yarn link
cd example
yarn && yarn link "react-netlify-identity"
yarn start

you will see this error:

image

however if you change the package.json to use the development versions:

image

it works!!

to me this indicates a rollup config issue.

Expected behavior

the production output should work the same as development output

Suggested solution(s)

i think this could be a terser bug. or a setting that is incompatible with React.

here is the offending unexpected token - prettified for easier reading

image

i'm not sure what rollup setting caused this but it definitely only exists in the production build.

Your environment

Software Version(s)
TSDX 0.3.4
TypeScript 3.4.4
Browser chrome
npm/Yarn yarn
Operating System osx

vscode doesn't use tsconfig.json settings for files in test folder

Current Behavior

When I set experimentalDecorators to true in tsconfig.json it works ok for files in "src", but it doesn't work for files in "test" (vscode marks decorators in red, but it works ok when running 'test')

Desired Behavior

When experimentalDecorators is set to true in tsconfig.json it should also be for vscode test files

Suggested Solution

Add a tsconfig.json file to the tests folder:

{
 "extends": "../tsconfig.json",
 "include": ["."]
}

with any other overrides that might be needed to make tests work and make jest use that one.

Who does this impact? Who is this for?

Libs that use experimental decorators

Describe alternatives you've considered

N/A

Additional context

N/A

`tsdx build` converts from kebab case to camel case

Current Behavior

if i have a package named "react-netlify-identity-widget" and i run tsdx build on it, the package.json has these fields:

  "umd:main": "dist/react-netlify-identity-widget.umd.production.js",
  "module": "dist/react-netlify-identity-widget.es.production.js",

however the filenames are camelcase: reactNetlifyIdentityWidget.cjs.production.js

Expected behavior

files should match up.

Suggested solution(s)

i'm actually not sure where the camelcasing pops up. took a quick look thru the code and couldnt find it.

maybe the super simple solution is to also camelcase the package.json naming. but probably the right solution is to preserve kebab case everywhere

`npx tsdx create` fails when Yarn is not installed

Current Behavior

Running tsdx create without having Yarn installed results in an error like this:

% npx tsdx create edzif-zz
โœ” Created edzif-zz
โœ– Failed to install dependencies
Error: spawn yarn ENOENT

    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)

% yarn
zsh: command not found: yarn

Expected behavior

tsdx's documentation could be read like it works with "plain npm", and thus I had expected it to work just having node

Suggested solution(s)

  1. If Yarn is required, it should probably be made clear.
  2. If not, tsdx create should work without Yarn.

Additional context

N/A

Your environment

Software Version(s)
TSDX latest (using npx)
TypeScript N/A
Browser N/A
npm/Yarn 6.9.0
Operating System macOS "Mojave" 14.4.0

Standardize commit and release

Current Behavior

No standardized commit messages or release process for created libraries.

Desired Behavior

yarn commit with prompts and linting + yarn release

Suggested Solution

Something like conventional commits + git-cz + semantic release.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.