Javascript npm开销-如何处理?
当通过npm安装任何东西时,它会下载几十个不需要的文件。通常我在寻找一个库的最终版本,一个Javascript npm开销-如何处理?,javascript,npm,gruntjs,gulp,npm-install,Javascript,Npm,Gruntjs,Gulp,Npm Install,当通过npm安装任何东西时,它会下载几十个不需要的文件。通常我在寻找一个库的最终版本,一个*.min.js文件或类似的文件,但其余的都是无用的 你如何处理这些无用的文件?您是手动删除它们还是使用任何构建工具(如gulp或grunt)生成最终应用程序 我很困惑,因为我的webapp中安装了大量npm模块,文件夹大小约为50 MB,但可能只有2mb。管理软件包 对于前端非开发包,我更喜欢。它维护包的缩小版和非缩小版 构建工具 使用或。我会选择大口大口地喝 将大大改进代码的吞咽任务包括: css和j
*.min.js
文件或类似的文件,但其余的都是无用的
你如何处理这些无用的文件?您是手动删除它们还是使用任何构建工具(如gulp
或grunt
)生成最终应用程序
我很困惑,因为我的webapp中安装了大量npm模块,文件夹大小约为50 MB,但可能只有2mb。管理软件包 对于前端非开发包,我更喜欢。它维护包的缩小版和非缩小版 构建工具 使用或。我会选择大口大口地喝 将大大改进代码的吞咽任务包括:
- css和js的缩小
- 图像的优化/压缩
- 连接和缓存以减少对服务器的调用数量
- 包版本控制
- 项目依赖项的自动注入
- 外部依赖项的自动注入
- js和css的静态分析
- 基于代码更改的自动构建
- 部署
- 测试
不要手动从节点删除任何内容,因为您不知道哪些包具有其他包作为依赖项。如果您担心其中可能有垃圾,请使用npm rimraf删除node_modules文件夹,然后运行npm install。最重要的是检查您的package.json是否保存了不必要的包。
npm安装--生产版
仅仅安装一个npm就可以带来开发和运行时的依赖关系。您还可以将服务器的ENV全局设置为production:npm config set production
参见github问题。请注意,这不会让你只最终缩小所有的构建,但会大大减少膨胀。例如,库可能依赖于babel cli、babel-preset-es2015和要构建的uglifyjs(devDependency),但如果库还包括传输的缩小文件,则不需要这些 如果你使用npm来安装东西,我会说你最好使用gulp。这样,你的最终构建应该只有它所需要的。问题不是npm。这是因为库开发人员在他们的构建中包含了大量不必要的垃圾,有时是因为对npm的工作原理理解不足。如果您使用这些库中的一个,您还需要下载所有依赖项。@GOTO0这不好。例如,Lodash在一个文件夹中有564个文件。我个人将npm作为开发过程的管理者,而您需要用于dist副本的代码,例如缩小的js文件,我使用bower。大多数引人注目的lib都包含自己的bower任务,其中只包含最终lib的concat src和dist副本,不过如果需要,您可以克隆整个repo。然后,是的,grunt或gulp copy任务将dist文件复制到构建时所需的文件夹中。我将坚持我的示例,lodash-bower也安装了数百个文件,与npm相同,但具有其他fiel结构。@Tukkan,您不必担心开发环境中的文件数量。你是在大口喝还是咕噜?然后使用wiredep和inject自动管理依赖关系