Meteor build正在将服务器端代码导入客户端
我的Meteor项目在Meteor build正在将服务器端代码导入客户端,meteor,import,build,Meteor,Import,Build,我的Meteor项目在/imports目录中有一个服务器端机密,该机密不应转到客户端 在客户端查看源代码时,我注意到文件实际上已导入 我搜索了我的项目目录,唯一可能发生这种情况的导入将此代码包含在共享的客户端/服务器文件中: if (Meteor.isServer) { import secret from '../imports/config/secret'; // ... } 我猜构建工具看到了导入并合并了它 有办法解决这个问题吗?我需要使用这个文件中的秘密,但是只有当Me
/imports
目录中有一个服务器端机密,该机密不应转到客户端
在客户端查看源代码时,我注意到文件实际上已导入
我搜索了我的项目目录,唯一可能发生这种情况的导入将此代码包含在共享的客户端/服务器文件中:
if (Meteor.isServer) {
import secret from '../imports/config/secret';
// ...
}
我猜构建工具看到了导入并合并了它
有办法解决这个问题吗?我需要使用这个文件中的秘密,但是只有当Meteor运行服务器端时
注意:请不要回答告诉我所有服务器端密钥等都不应随生成一起发布。这不完全是一回事。isServer构造可以保护代码不在客户端上运行,但不会阻止这些字节被提供。您指出文件本身在客户端和服务器之间共享,这是您的问题 您需要将该代码移动到仅提供给服务器的文件中。i、 e.在名为“服务器”的文件夹或其子文件夹中 发件人: 客户端上未加载任何名为server/的目录。类似 将代码包装在if(Meteor.isServer){…}中,客户端除外 甚至从未收到代码。任何你不想要的敏感代码 服务于客户端,例如包含密码或密码的代码 身份验证机制应保存在服务器/目录中
isServer构造可以保护代码不在客户机上运行,但不会阻止提供这些字节。您指出文件本身在客户端和服务器之间共享,这是您的问题 您需要将该代码移动到仅提供给服务器的文件中。i、 e.在名为“服务器”的文件夹或其子文件夹中 发件人: 客户端上未加载任何名为server/的目录。类似 将代码包装在if(Meteor.isServer){…}中,客户端除外 甚至从未收到代码。任何你不想要的敏感代码 服务于客户端,例如包含密码或密码的代码 身份验证机制应保存在服务器/目录中
可以现在,假设我仍然需要从客户端和服务器提供的另一个文件中获取该文件(现在放在服务器中),它能解决任何问题吗?@dthree,这行不通。你必须做一些工作来分解那些文件中的内容,或者甚至打电话给服务器来获取你需要的内容。很难说没有看到实际的代码。好吧,我明白了,这是有道理的。谢谢你的帮助!可以现在,假设我仍然需要从客户端和服务器提供的另一个文件中获取该文件(现在放在服务器中),它能解决任何问题吗?@dthree,这行不通。你必须做一些工作来分解那些文件中的内容,或者甚至打电话给服务器来获取你需要的内容。很难说没有看到实际的代码。好吧,我明白了,这是有道理的。谢谢你的帮助!