如何从meteor build中删除npm文件

时间:2016-04-20 11:01:11

标签: meteor npm

将Meteor升级到1.3.x版后,NPM真的开始发挥作用了。但总是有硬币的背面:建立尺寸。 在流星1.2.x上构建大小约为50MB,~7k文件 在流星1.3.x上,构建大小约为190MB, ~27k 文件。

二万七千个文件。这个数字非常多。更不用说路径大小超过256(Windows用户的麻烦)。 我已经深入研究了构建中包含的meteor,似乎所有的npm_modules都包含了构建一些模块及其依赖项所需的所有东西。

问题是:如何构建没有unnessesary npm文件的meteor app,只留下app在运行时实际使用的那些?

更新: 在meteor 1.4.1_3上,如果您创建一个简单的项目meteor create dummy-project并浏览所有常见的内容,例如npm meteor installmeteor npm prune --production,并使用meteor build c:\dummy --directory将其打包出来将获得一个具有相同7k文件和近2k文件夹的文件夹(顺便说一下,它不会像你期望的那样开箱即用node main.js)。如果你修改文件夹,你可以在里面找到带有~3.5k文件的babel编译器。

为什么我在编译应用程序中需要babel编译器?

1 个答案:

答案 0 :(得分:-1)

要了解您的套餐,

npm list --depth 0 

仅使用一个级别查看项目中的当前包。

检查该列表,并确定您是否不需要包并卸载它。

您还可以使用其他标志,例如

npm list --depth 1 #the number represents the max depth
npm list --long true #for more information about the packages
npm list --global true #to check your global packages. 
npm help-search <searchTerm>

希望能帮助您更好地了解您的包裹。 help-search Link

您可能会看到多个软件包依赖于相同的软件包,然后您可以决定应用程序成功运行所需的内容。

修改1

您可以排除devDependencies中的软件包,这样当您发布/部署代码时,您就拥有了一个更干净的软件包。

您可以使用npm prune --production执行此操作 - 删除所有devDependencies,并要求您的用户为您的程序包执行npm install。有关信息here