我真的很喜欢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
有解决这个问题的聪明方法吗?
npx create-nx-workspace@latest cli-workspace --preset empty --cli nx --nx-cloud false
cd cli-workspace
npm install -D @nrwl/node
nx generate @nrwl/node:application my-cli
#!/usr/bin/env node
npm start