Node.js 什么';s src/***和'之间的差异;src/***和#x27;
我想用Node.js 什么';s src/***和'之间的差异;src/***和#x27;,node.js,typescript,nodemon,Node.js,Typescript,Nodemon,我想用nodemon "scripts": { "start": "tsc && node build/index.js", "watch-server1": "nodemon --watch src/**/* -e ts,tsx --exec ts-node ./src/index.ts", "watch-server2": "nodem
nodemon
"scripts": {
"start": "tsc && node build/index.js",
"watch-server1": "nodemon --watch src/**/* -e ts,tsx --exec ts-node ./src/index.ts",
"watch-server2": "nodemon --watch 'src/**/*' -e ts,tsx --exec 'ts-node' ./src/index.ts"
},
但是当我使用watch-server1
时:
(node:6830) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
/Users/leonsux/Desktop/Code/home/src/router/index.js:5
export default router;
^^^^^^
SyntaxError: Unexpected token 'export'
at wrapSafe (internal/modules/cjs/loader.js:1167:16)
at Module._compile (internal/modules/cjs/loader.js:1215:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
at Module.load (internal/modules/cjs/loader.js:1100:32)
at Function.Module._load (internal/modules/cjs/loader.js:962:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at main (/Users/leonsux/Desktop/Code/home/node_modules/ts-node/src/bin.ts:198:14)
at Object.<anonymous> (/Users/leonsux/Desktop/Code/home/node_modules/ts-node/src/bin.ts:288:3)
at Module._compile (internal/modules/cjs/loader.js:1251:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
[nodemon] app crashed - waiting for file changes before starting...
(节点:6830)警告:要加载ES模块,请在package.json中设置“type”:“module”或使用.mjs扩展名。
(使用`node--trace warnings…`显示警告的创建位置)
/Users/leonsux/Desktop/Code/home/src/router/index.js:5
导出默认路由器;
^^^^^^
SyntaxError:意外标记“导出”
在wrapSafe(内部/modules/cjs/loader.js:1167:16)
at模块编译(内部/modules/cjs/loader.js:1215:27)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:1272:10)
在Module.load(内部/modules/cjs/loader.js:1100:32)
at Function.Module._load(内部/modules/cjs/loader.js:962:14)
在Function.executeUserEntryPoint[作为runMain](internal/modules/run_main.js:72:12)
在main(/Users/leonsux/Desktop/Code/home/node_modules/ts node/src/bin.ts:198:14)
反对。(/Users/leonsux/Desktop/Code/home/node_modules/ts node/src/bin.ts:288:3)
at模块编译(内部/modules/cjs/loader.js:1251:30)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:1272:10)
[nodemon]应用程序崩溃-正在等待文件更改,然后再启动。。。
当我使用watch-server2
时,它工作得很好
那么,
src/***
和'src/***'
在参数传递到nodemon
之前,您的shell(例如bash)将扩展像*
这样的不带引号的shell字符
在单引号中引用它们将保护它们不被shell扩展,因此nodemon
将作为参数传递文本字符串src/***
。(它可以通过扩展通配符本身来做它喜欢做的事情。)
这会产生巨大差异的一个例子:
scp 'remoteserver:*.txt' .
与:
scp remoteserver:*.txt .
引用*
允许scp打开到远程服务器的安全连接,并查看其中存在哪些文件
如果您的本地shell扩展了
*
,它只会在您的本地计算机上查找名为“remoteserver:foo.txt”的文件,可能找不到任何文件。+1。请注意,在许多shell中,如果找不到匹配项,则只保留fileglob;所以像scp remoteserver:.txt.这样的东西可能会起作用。直到它没有。(这是POSIX指定的行为,也是带有默认设置的Bash的行为。)@ruakh我没有意识到这一点。我主要使用tcsh,如果fileglob无法扩展,它只会说“command:no match”。