问题标签 [terser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Terser CLI:如何删除评论?
我正在使用这个命令:
但是,评论全部保留。其他一切都被压缩了。如何删除评论?
编辑:这似乎将所有评论替换为//
:
ruby-on-rails - Rails、Webpacker、Terser keep_fnames
试图避免 webpacker:compile 删除函数名。尝试过 Terser 甚至 babel-plugin-minify-mangle-names。到现在都没去。
为详细的长解释道歉。
我的设置:带有 gem 'webpacker'、'~> 4.0.7' 的 Rails 5.2
包.json
我将 'minify-mangle-names' 添加到babel.config.js,否则与此处的基本示例相同
我的 webpack/production.js 文件如下:
如您所见,我在底部添加了一个控制台输出,以测试是否应用了我为 Terser 设置的优化选项。当我运行NODE_ENV=production ./bin/webpack-dev-server
(在生产环境中模拟 webpack 服务器)时,它会打印:
正如您在顶部看到的控制台输出keep_fnames
设置为true
for Terser
。我收到一堆警告,但它模拟它编译。
因为我是用 webpack-dev-server 运行这个的,所以没有编译好的文件,所以接下来,我运行rake assets:precompile
来模拟真实的现场部署。正如预期的那样,它打印:
太好了,所以它甚至编译了文件。
但是当我查看 public/packs/js 时,我看到了编译的文件。
.map 文件不存在,尽管我在运行时传递sourceMap: true
给Terser
它并且没有收到任何警告/错误NODE_ENV=production ./bin/webpack-dev-server
。其中一个文件是grapesjs-mjml-795c3e00423f5e30c625.js
当我打开它时,我看到一个没有函数名的缩小文件:
这几乎就像我做rake assets:precompil
e 时一样,我的设置被忽略了。
我已经尝试了很多东西。到目前为止,没有任何效果。有任何想法吗?
更新
通过将以下块添加到我的module.exports = merge({
.map 文件现在存在。尽管如此,函数名称还是没有运气。输出:{ libraryExport:'default',libraryTarget:'umd',},
javascript - 汇总,多个文件,多个文件中的相同常量名称:浏览器中的错误:未捕获的语法错误:标识符“o”已被声明
我有个问题。
解释
在我在 /one 页面上导航的网站中,one.js文件中的代码执行良好。
过了一会儿,我在两个.js 文件中插入页面( pjax,ajax:无论如何)第二个代码。
浏览器抱怨此错误:
复制和源代码
rollup.config.js:
/li>src/one.js:
/li>src/two.js:
/li>dist/js/one.js:
/li>dist/js/two.js:
/li>
问题
如何解决这个问题?
我们可以根据文件名“前缀”常量名吗?
当然,如果我将所有内容都放在一个.js文件中,它可以工作,但由于项目的结构,这是不可能的。
webpack - Webpack 4 中的自定义 terser-webpack-plugin 缓存失效
我正在将一个大型应用程序从 Webpack v3 升级到 v4。
在 Webpack 3 中,我们为 UglifyJS 提供了一个自定义的后 Webpack 机制。它将经过后处理的 JS 文件存储在给定目录中 24 小时,其文件名是根据其内容生成的哈希值。
现在,我们已经用内置的 TerserJS 插件替换了我们的 post-Webpack Uglify 步骤。我想复制上述缓存功能。
我试过阅读文档,但他们在这个主题上很少见:https ://webpack.js.org/plugins/terser-webpack-plugin/#cache
文档没有提到文件将被缓存多长时间,或者它们将如何失效。
如果有人能指出我正确的方向,那将不胜感激。
node.js - React JS 运行脚本构建无法编译
问题描述
>> npm run-script build
编译失败
预期行为
编译成功,build文件夹包含一个缩小的项目,输出没有错误
实际行为
输出给出以下错误:
也失败的可能修复
Stackoverflow 社区对此有一些解决方案。第一个是npm i react-scripts --save-dev
,这并没有什么不同。其次npm i terser@3.14.1 --save
,也没有进展。
包.json
附加信息
使用创建的项目npx create-react-app
。/ Windows 10 1903, / VSCode / ReactJS 库 / Firebase 托管/firestore 已初始化 /
我正在使用 npm,但我不知道基于纱线的可能修复是否可以做任何事情。即使我尝试过,到目前为止也没有任何效果。
**编辑:还尝试完全删除 terser 并安装两个 Terser@3.14.1,然后删除它并安装 Terser@3.16.1 以测试任何版本是否有效。版本之间没有区别。还尝试将 terser 作为依赖项安装,包括 3.14.1 和 3.16.1。没有任何效果。
仅此项目无法进行构建。较旧的项目已成功构建。目前正在尝试找出可能导致它的原因。
typescript - Webpack,babel - node_modules 不排除在捆绑包中
我试图弄清楚我的 babel webpack 配置有什么问题。构建后,我的包中有 node_modules
我尝试了 .babel-rc、terser 和 awesome-typescript-loader(不包括 /node_modules/)的不同配置,但 node_modules 仍然在包中。
"webpack": "^4.41.0",
yarn run clean-dist && webpack -p --config=webpack/prod.js --env.production
.babelrc
.tsconfig
https://i.imgur.com/orcJqAT.png
我希望捆绑包没有 node_modules
vue.js - Vue CLI 3 使用 Terser 删除 console.log 和代码注释
我正在使用 VUE CLI 3,我需要从构建的产品中删除console.log和代码注释。这是我的Terser设置:
src文件夹中的webpack.config.js
我的生产工作流程:运行npm run build
-> cd dist
->npm run serve
生产版本仍会输出所有console.log语句并显示代码注释(<!-- -->)
。我需要更改哪些内容才能删除它们?
javascript - Vue CLI 3 vue.config.js 与 webpack.config.js 的插件
我正在使用 Vue CLI 3,我需要添加Terser Webpack 插件以从代码中删除console.log和注释。这不适用于我当前的设置 - 日志和评论仍在构建中。我的制作流程:
- 跑
npm run build
- 跑
serve -s dist
vue.config.js:
webpack.config.js:
包.json:
我需要更改什么才能使其正常工作?代码的正确webpack.config.js
位置?
javascript - Javascript中的缩小安全捕获参数?
使用 webpack 的 Terser 插件缩小我的 JavaScript 应用程序后,此 catch 函数无法在浏览器中正确运行
在此示例中,后端发送一个错误对象,其中包含设置为“用户存在”的错误属性。
浏览器应该能够解析错误对象并读取error.error,但它不能。
使用未缩小的代码,脚本可以正常工作,并且浏览器会执行“vm.emailTakenError = true”行。
在浏览器控制台命令行中,缩小后,返回 error.error 给出此错误(Chrome 开发工具):
未捕获的 ReferenceError:错误未在 eval 处定义(eval at (signup.ts:92), :1:1)
奇怪的是,在 Chrome 开发工具中使用缩小代码上的源映射,控制台可以使用鼠标悬停解析 error.error 属性,但不能作为 Watch 或浏览器窗口或任何其他方法。
同样神秘的是,这条线永远不会运行:
该代码在 Firefox 中也失败了。
我对缩小器、代码或其他东西有问题吗?如何解决这个问题?
minify - 使用 Terser,函数名称和变量没有被破坏,死代码没有被删除
使用 Terser 我无法得到想要的结果。
我正在尝试缩小下面的测试代码,并且无论我尝试什么,函数名称都不会被缩小。变量名称也保持不变,只是在具有参数的局部函数中,它们会被更改。我已经着手toplevel
并true
尝试了我能想到的每一个选项。中的死代码neverBeCalled
也不会消失。使用 Terser v4.3.4 并且使用另一个缩小器没有问题,如果可以的话。
我的配置:
测试源文件:
结果