我正在尝试使用spawn
软件包中的cross-spawn
运行命令,以编程方式安装npm的某些依赖项,这些依赖项可以是汇总包或webpack包,具体取决于变量bundler
spawn.sync(
'npm',
[
'add',
'-D',
'svelte',
bundler === 'rollup' ? ...rollupPackages : ...webpackPackages
],
{ cwd: projectPath }
)
但是打字稿编译器在抱怨,更具体地说,在rollupPackages
的散布运算符上显示以下消息:
Expression expected. ts(1109)
答案 0 :(得分:0)
我假设两个包变量都是数组,并且您想将各个数组值作为自己的值添加到.sync
调用参数数组中,所以请尝试将整个表达式括在括号中:
spawn.sync(
'npm',
[
'add',
'-D',
'svelte',
(bundler === 'rollup' ? ...rollupPackages : ...webpackPackages)
],
{ cwd: projectPath }
)
答案 1 :(得分:0)
找到解决方案,而不是破坏三元运算的每个变量,而是包装整个条件并从外部对其进行分解,效果很好,例如:
spawn.sync(
'npm',
[
'add',
'-D',
'svelte',
...(bundler === 'rollup' ? rollupPackages : webpackPackages)
],
{ cwd: projectPath }
)