当用户安装我的 TypeScript 模块时,如何让 `npm install` 将它编译成 JS?
How do I get `npm install` to compile my TypeScript module into JS when it is installed by a user?
我构建了一个 TypeScript 模块并将其推送到 GitHub。我现在想在我的 MyApp
中使用这个模块作为依赖项,它也是用 TypeScript 编写的。该包已在我的 MyApp/package.json
:
中注册
"dependencies": {
"foo": "github:organization-xyz/foo",
}
我添加了一个命令 build-ts
来在我的 foo 模块中创建相应的 JavaScript
绑定 foo/package.json
:
"scripts": {
"build-ts": "tsc"
...
},
当然,当我在我的主应用程序上调用npm i
时,这个命令并没有被执行。我将如何正确准备我的模块 foo
以便在我的应用程序中成功导入它?
将构建命令放入 package.json
prepare
脚本中。
例如:
"scripts": {
"prepare": "npm run build-ts"
"build-ts": "tsc"
...
},
prepare
是其中之一
Life Cycle Scripts that are automatically run by npm in certain situations. One of the situations is when package dependencies are installed, as stated in the npm-install docs:
If the package being installed contains a prepare script, its dependencies and devDependencies will be installed, and the prepare script will be run, before the package is packaged and installed.
由于准备脚本也在发布之前 运行,请确保将您的 package.json
配置为不发布构建工件。
既然您提到要在 GitHub 上发布它,这里有一些特定于该案例的更多信息:
- Installing and Building an NPM Package from Github - Jim Nielsen’s Blog - 这个专门讨论npm
prepare
脚本的使用。
- Install NPM Packages from GitHub | Pluralsight
也就是说...
...如果构建不依赖于安装目标(例如 cpu-架构),标准做法是在发布之前将您的 Typescript 转换为 Javascript。几乎每个人都这样做,包括 Typescript 的制作者。但我不打算在这里提出理由...
我构建了一个 TypeScript 模块并将其推送到 GitHub。我现在想在我的 MyApp
中使用这个模块作为依赖项,它也是用 TypeScript 编写的。该包已在我的 MyApp/package.json
:
"dependencies": {
"foo": "github:organization-xyz/foo",
}
我添加了一个命令 build-ts
来在我的 foo 模块中创建相应的 JavaScript
绑定 foo/package.json
:
"scripts": {
"build-ts": "tsc"
...
},
当然,当我在我的主应用程序上调用npm i
时,这个命令并没有被执行。我将如何正确准备我的模块 foo
以便在我的应用程序中成功导入它?
将构建命令放入 package.json
prepare
脚本中。
例如:
"scripts": {
"prepare": "npm run build-ts"
"build-ts": "tsc"
...
},
prepare
是其中之一
Life Cycle Scripts that are automatically run by npm in certain situations. One of the situations is when package dependencies are installed, as stated in the npm-install docs:
If the package being installed contains a prepare script, its dependencies and devDependencies will be installed, and the prepare script will be run, before the package is packaged and installed.
由于准备脚本也在发布之前 运行,请确保将您的 package.json
配置为不发布构建工件。
既然您提到要在 GitHub 上发布它,这里有一些特定于该案例的更多信息:
- Installing and Building an NPM Package from Github - Jim Nielsen’s Blog - 这个专门讨论npm
prepare
脚本的使用。 - Install NPM Packages from GitHub | Pluralsight
也就是说...
...如果构建不依赖于安装目标(例如 cpu-架构),标准做法是在发布之前将您的 Typescript 转换为 Javascript。几乎每个人都这样做,包括 Typescript 的制作者。但我不打算在这里提出理由...