我尝试打包我的电子应用,它需要mqtt和node-notifier模块。 所以我想做的是排除除了它们之外的所有node_modules。
我们假设我想从包装中排除这些文件:
所以设置--ignore选项如下:
--ignore='npm-debug|gulpfile\.js|\.vscode'
工作正常。但除了mqtt和node-notifier之外还要排除node_modules,我不知道如何制作正则表达式!
--ignore='npm-debug|gulpfile\.js|\.vscode|^((?!node_modules/mqtt).)$' // NOT WORKING
只检查node_modules,/^((?! node_modules / mqtt)。)$ /是可行的,但将它们组合成单个正则表达式行,它不起作用。
我知道我的正则表达式是错误的,但我尝试了正则表达式字符和想象力的每一个组合,每次尝试都失败了,并且无法在谷歌上找到任何解决方案。
这是Regex Testing site,你可以看到我被困在哪里。
任何建议都将非常感谢。谢谢!
答案 0 :(得分:1)
来自打包者github page
小心不要在{0}}中加入您不希望进入最终应用的
node_modules
。如果将它们放在devDependencies
的{{1}}部分中,默认情况下,与这些依赖项相关的模块都不会复制到应用程序包中。 (可以使用package.json
标志关闭此行为。)
来自electron-packager API page关于--no-prune
标志
运行包管理器命令,从输出的Electron应用程序中删除
--prune
devDependencies
部分中指定的所有包。
您应该能够将package.json
以外的所有包裹放在mqtt
中并运行包装