2017-08-01 40 views
0

由于我日常工作项目中的治理约束,我无法使用很多好的新JS库和框架。因此,对于MVP,我们使用直接(非缩小)加载到客户端(总量)的vanilla JS。虽然这是向管理层展示不是最好的方法的好方法,但我仍然不得不将它推出去。然而,我们的开发机器上安装了NPM和Node,我想用这个来优化我们的JS到一个组合包中,并用散列来打破缓存。使用npm和vanilla js

我的问题是我该如何去收集一堆不相交的JS文件,并将它们添加到一个新的NPM项目中以缩小版本,同时避免预期的变量,对象和函数被webpack/prettify弄坏?

我试着将js文件复制到src目录中,然后添加正常的导入/导出行,但我在控制台中收到了一堆“未找到标识符”消息,所以我认为很多东西是越来越受伤。

我有一些使用create-react-app的React方面项目的经验,但不幸的是,这让我摆脱了以艰难的方式获得项目设置的痛苦,现在我为我的经验不足付出了代价。

编辑︰为了更简洁,我试图打包一堆现有的js文件到一个包,同时保持相同的接口。如果这是不可能的,请让我知道。否则,一个开始的地方将是理想的。

+1

喜欢这个?老套。 '猫a.js b.js c.js | uglifyjs -cm> bundle.js' – Prinzhorn

+0

@Prinzhorn完美,除了我用'type'代替猫(Windows,唉)。您可以将此作为答案以及将babel整合到这个简单过程的方式吗?尽管浏览器没有问题,但我必须将所有'let'和'const'声明都更改为'var'。 – drognisep

回答

1

在browserify,babel,webpack,grunt,gulp ......之前的日子里,我们只是连接文件并缩小它们。由于这些文件将它们的API公开为全局对象,因此所有内容都保持工作状态,就好像包含不同脚本标记的文件一样。

在Linux上,你可以串联时他们仅仅做到这一点

cat a.js b.js c.js | uglifyjs -cm > bundle.js 

的文件往往会以分号开始,以确保没有休息。

一旦巴贝尔配置整合是那么容易,因为

cat a.js b.js c.js | babel | uglifyjs -cm > bundle.js 

https://babeljs.io/docs/usage/cli/

相关问题