提问者:小点点

SRC/**/*和'SRC/**/*'有什么区别


我想用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...

当我使用watch-server2时,它工作得很好

那么,src/**/*'src/**'之间有什么区别


共1个答案

匿名用户

在参数传递给nodemon之前,*之类的未加引号的shell字符将由shell展开(例如bash)。

在单引号中引用它们将保护它们不被shell扩展,因此nodemon将作为参数传递文字字符串src/**/*。(它可以做它喜欢做的事情--大概是扩展通配符本身。)

这会产生很大差异的一个例子:

scp 'remoteserver:*.txt' .

范瑟丝:

scp remoteserver:*.txt .

引用*允许scp打开到远程服务器的安全连接,并查看其上存在哪些文件。

如果*由本地shell扩展,它将在本地计算机上查找名称类似“remoteserver:foo.txt”的文件,并且可能没有找到。