小编Eux*_*Eux的帖子

桶形文件和摇树

这是一个示例存储库,显示了此线程中报告的问题的示例:https : //github.com/Eux86/tree-shaking-barrel-test/blob/master/README.md

我试图了解使用 Barrel 文件从库项目中导出函数和类的效果是什么,当将它导入到另一个使用 webpack 的项目中并且应该能够对包进行 treeshake 时。

假设我有一个项目:

图书馆

  • 索引.ts

  • libA.ts

  • 库文件

index.ts 有这个代码:

export { LibAMain } from 'LibA';
export { LibBMain } from 'LibB';
Run Code Online (Sandbox Code Playgroud)

所以我使用 index 作为桶文件来导出我将在我的库中开发的所有函数。

第二个项目将是:

图书馆用户

  • 索引.ts

Index.ts 有这样的代码:

import { LibAMain } from 'library'

LibAMain();
Run Code Online (Sandbox Code Playgroud)

现在:library-user 是使用 webpack 构建的,我希望它能够对 MyLib 中未使用的库进行 treeshake,但是当我查看生成的包时,我看到它包含引导 LibA.js 和 LibB.js,这不应该在那里:

在此处输入图片说明

如果我将 index.ts 更改为:

import { LibAMain } from 'library/lib/LibA'

LibAMain();
Run Code Online (Sandbox Code Playgroud)

然后 webpack 很好地完成了它的工作,我只在最终包中看到了 LibA:

在此处输入图片说明

TL;DR:我怎样才能继续使用桶索引文件并只从“库”中导入所有内容,但仍然使 treeshaking 工作?

感谢您的任何帮助 :)

import webpack tree-shaking

16
推荐指数
2
解决办法
2244
查看次数

Visual Studio 扩展:获取解决方案资源管理器中当前选定文件的路径

我正在尝试为 Visual Studio 创建我的第一个扩展,到目前为止,我一直在遵循本教程来开始使用(http://www.diaryofaninja.com/blog/2014/02/18/who-said-building -视觉工作室扩展很困难)。现在,当我单击解决方案资源管理器中的文件时,会出现一个自定义菜单项。我的小项目现在需要的是获取在解决方案资源管理器中选择的文件的路径,但我不明白如何做到这一点。有什么帮助吗?

- - - - - - - - - - - - - - 编辑 - - - - - - - - - - - ---------

正如马茨所说,答案就在我发布的链接中。只是我写的时候没注意到而已。同时,我还在该线程中找到了另一个可能的答案:How to get the details of the selected item in Solution Explorer using vs package

我在哪里找到了这段代码:

foreach (UIHierarchyItem selItem in selectedItems)
            {
                ProjectItem prjItem = selItem.Object as ProjectItem;
                string filePath = prjItem.Properties.Item("FullPath").Value.ToString();
                //System.Windows.Forms.MessageBox.Show(selItem.Name + filePath);
                return filePath;
            }
Run Code Online (Sandbox Code Playgroud)

因此,这里有两种方法来获取所选文件的路径:)

vsx vspackage visual-studio-extensions

5
推荐指数
2
解决办法
5391
查看次数