npm 运行 脚本调用 Rollup 除了打开配置文件什么都不做

npm run script invoking Rollup does nothing but open config file

我们有一个脚本 "build": "rollup -c rollup.js --environment production",当我们的一些团队(使用 Windows)调用它时,有时会自发地不正常地 运行,而是只是打开rollup.js 编辑器中的配置文件。不幸的是,我真的不知道从哪里开始,因为我从来没有能够复制它。没有生成日志文件,据我所知 ignore-scripts 未设置,这是我在 SO 上看到的与此行为相关的唯一其他内容。

这是一个已知的问题吗?有一个简单的修复吗?或者,如果没有,我应该去哪里找到有关此的更多信息?这会是 npm 或 rollup 的问题吗?

我在Windows遇到了同样的情况。

我用WSL绕过了

通过一些调查,我已经追踪到我认为这是关于他们如何处理配置文件的汇总错误。我觉得好像我应该就此向他们开票,但我一直代表团队成员行事并且没有能力自己复制它,所以......我想我会尝试强迫他们这样做。

但是无论如何,从我查看 rollup 的源代码可以看出,如果 rollup 配置文件有一个普通的 .js 扩展名,那么在配置中看起来 rollup 本身就是 运行将其转换为 CommonJS 格式,然后将其导入并在实际构建步骤中使用。在 Windows 这个过程中的某个地方出了点问题,结果是配置文件最终被打开,无论 JS 文件的默认处理程序是什么。所以基本上解决方案是更改文件扩展名。

我们的原始配置是使用 ES6 import/export 设置的,目前我不清楚将扩展名更改为 .mjs 是否会跳过或以其他方式更改此转换步骤,似乎有当人们尝试过但我不能保证时,它就这样工作了。我所做的是通过配置并手动将所有 ES6 import/export 转换为 CommonJS require(),然后将文件扩展名更改为 .cjs(因此我们的配置从 rollup.jsrollup.cjs) 现在它似乎在所有方面都在一致地工作。