如何从 babel 处理的汇总包中删除 use strict

Posted

技术标签:

【中文标题】如何从 babel 处理的汇总包中删除 use strict【英文标题】:how to remove use strict from rollup bundle processed by babel 【发布时间】:2017-07-11 17:54:05 【问题描述】:

我尝试了插件 transform-remove-strict-mode 但它不起作用。结果格式是 iife,我在 gulp 中使用汇总(并将 babel 作为汇总插件)。

【问题讨论】:

ES6 模块默认是严格的。你在使用 ES6 模块语法吗? 尝试将useStrict: false 选项传递给汇总。更好的是,不要使用不在严格模式下运行的代码! 你能提供一些链接吗:es6模块只有严格的? 不幸的是,我的代码依赖于非严格行为... 【参考方案1】:

output 选项中使用strict: false the documentation.

【讨论】:

我试过了,但没有用。尝试使用第三方 SDK 时,我仍然收到错误 Deleting local variable in strict mode delete fn 。 SDK 在 webpack 中运行良好,但在 svelte + rollup 项目中导入和尝试调用方法会出现上述错误。您对如何解决此问题有任何想法吗?【参考方案2】:

只要确保在配置输出对象中指定 strict: false

input: [...],
output: 
    ...,
    strict: false,
,
plugins: [...],

您可以在此处查看默认选项: https://rollupjs.org/guide/en/#configuration-files

【讨论】:

【参考方案3】:

useStrict: false 添加到汇总配置中完成了这项工作

【讨论】:

以上是关于如何从 babel 处理的汇总包中删除 use strict的主要内容,如果未能解决你的问题,请参考以下文章

如何从包中删除过程或函数

我自己的包中的npm包babel错误

从嵌套的 Lerna 包中删除依赖项

Babel技术使用汇总

Babel技术使用汇总

从零开始webpack4.x js处理