使节点应用程序在NX工作区中可执行

时间:2020-06-18 21:38:29

标签: node.js typescript command-line-interface shebang nrwl-nx

我真的很喜欢NX workspace的结构,这使我在构建新的CLI项目时开始使用它。

我从创建@nrwl/node:application开始,但是目前在使其可执行方面遇到一些问题。

我相信这不是NX本身的问题,但是我无法在main.ts文件中添加shebang #!/usr/bin/env node,因为tsc编译器会抱怨。

Module parse failed: Unexpected character '#' (1:0) File was processed
with these loaders:  * ./node_modules/ts-loader/index.js

我已经在我的package.json文件中添加了"bin": {"cli": "main.js"}属性,但是如果我在没有shebang的情况下运行main.js文件,则会收到此错误消息:

line 1: syntax error near unexpected token `('
C:\Users\*\AppData\Roaming\npm/node_modules/*/dist/apps/*/main.js: line 1: `(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap

有解决这个问题的聪明方法吗?

复制步骤:

  1. npx create-nx-workspace@latest cli-workspace --preset empty --cli nx --nx-cloud false
  2. cd cli-workspace
  3. npm install -D @nrwl/node
  4. nx generate @nrwl/node:application my-cli
  5. 在main.ts文件顶部添加#!/usr/bin/env node
  6. npm start

0 个答案:

没有答案