我应该在 NPM package.json 中将我的“启动”脚本设置为啥?

Posted

技术标签:

【中文标题】我应该在 NPM package.json 中将我的“启动”脚本设置为啥?【英文标题】:What should I set my "start" script to in NPM package.json?我应该在 NPM package.json 中将我的“启动”脚本设置为什么? 【发布时间】:2019-04-13 16:10:18 【问题描述】:

我无法运行 npm start,因为我的 package.json 中没有“启动”脚本。问题是,我不知道该输入什么。如何找出我应该将启动脚本设置为什么?我尝试了各种值,例如 "start": "node app.js""start": "node server.js",但它们没有奏效。

这是我尝试npm start时的调试日志

1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'start' ]
2 info using npm@6.4.1
3 info using node@v11.1.0
4 verbose config Skipping project config: C:\Users\Aristophanes/.npmrc. (matches userconfig)
5 verbose stack Error: missing script: start
5 verbose stack     at run (C:\Program Files\nodejs\node_modules\npm\lib\run-script.js:155:19)
5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\lib\run-script.js:63:5
5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:115:5
5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:418:5
5 verbose stack     at handleExists (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:382:20)
5 verbose stack     at fs.stat (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:390:33)
5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29
5 verbose stack     at FSReqCallback.oncomplete (fs.js:161:21)
6 verbose cwd C:\Users\Aristophanes
7 verbose Windows_NT 10.0.17134
8 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
9 verbose node v11.1.0
10 verbose npm  v6.4.1
11 error missing script: start
12 verbose exit [ 1, true ]

更新:我现在在 package.json 的脚本部分中有 "start": "node.js"。当我尝试npm start 现在我在错误日志中得到这个:

1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'start' ]
2 info using npm@6.4.1
3 info using node@v11.1.0
4 verbose config Skipping project config: C:\Users\Aristophanes/.npmrc. (matches userconfig)
5 verbose run-script [ 'prestart', 'start', 'poststart' ]
6 info lifecycle npm@6.4.1~prestart: npm@6.4.1
7 verbose lifecycle npm@6.4.1~prestart: unsafe-perm in lifecycle true
8 verbose lifecycle npm@6.4.1~prestart: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\Aristophanes\node_modules\.bin;C:\Program Files\cmder\bin;C:\Program Files\cmder\vendor\conemu-maximus5\ConEmu\Scripts;C:\Program Files\cmder\vendor\conemu-maximus5;C:\Program Files\cmder\vendor\conemu-maximus5\ConEmu;C:\Program Files\nodejs;C:\Users\Aristophanes\AppData\Roaming\npm;C:\ProgramData\Boxstarter;C:\Python27\;C:\Python27\Scripts;C:\Program Files\Microsoft MPI\Bin\;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Go\bin;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Users\Aristophanes\Go\bin;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users\Aristophanes\AppData\Local\Programs\Python\Python37;C:\Users\Aristophanes\AppData\Local\Programs\Python\Python37\Scripts;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\php;C:\ProgramData\chocolatey\bin;C:\Program Files\Geth;C:\HashiCorp\Vagrant\bin;C:\Program Files\Git\cmd;C:\composer;C:\Program Files\nodejs\;C:\Program Files\Git\mingw64;C:\Program Files\Git\usr\bin;C:\Program Files\cmder
9 verbose lifecycle npm@6.4.1~prestart: CWD: C:\Users\Aristophanes
10 silly lifecycle npm@6.4.1~prestart: Args: [ '-c', 'npm install' ]
11 silly lifecycle npm@6.4.1~prestart: Returned: code: 1  signal: null
12 info lifecycle npm@6.4.1~prestart: Failed to exec prestart script
13 verbose stack Error: npm@6.4.1 prestart: `npm install`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16)
13 verbose stack     at EventEmitter.emit (events.js:182:13)
13 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:182:13)
13 verbose stack     at maybeClose (internal/child_process.js:970:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:257:5)
14 verbose pkgid npm@6.4.1
15 verbose cwd C:\Users\Aristophanes
16 verbose Windows_NT 10.0.17134
17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
18 verbose node v11.1.0
19 verbose npm  v6.4.1
20 error code ELIFECYCLE
21 error errno 1
22 error npm@6.4.1 prestart: `npm install`
22 error Exit status 1
23 error Failed at the npm@6.4.1 prestart script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

【问题讨论】:

我认为您的package.json 格式不正确。它说Error: missing script: start,而你已经写了你已经指定了启动脚本。 我尝试过编写“开始”脚本,但它们没有工作,所以我目前没有设置。我在问我应该将“开始”脚本设置为.. 您应该添加的日志是当您指定了上述启动脚本时。你可以试试node . 作为脚本。 请看这个问题的更新,我已经添加了相关日志,谢谢 当你运行命令时你想发生什么,具体来说? 【参考方案1】:

请尝试在scripts 中写入start,并提供服务器文件的路径。

"start": "node ./index.js",

【讨论】:

以上是关于我应该在 NPM package.json 中将我的“启动”脚本设置为啥?的主要内容,如果未能解决你的问题,请参考以下文章

npm install -g 同时更新 package.json?

是否应该将 package-lock.json 提交到 npm 包的存储库?

在 package.json 中定义私有注册表

如果我的代码仅供我工作的公司使用,我应该在 package.json 的许可字段中输入啥?

可以在 Typescript 库中的 package.json 中将 @types 库作为正常依赖项吗?

我应该提交 yarn.lock 和 package-lock.json 文件吗?