我想在全局windows
对象上组织和公开我的函数,但无论我尝试什么,我似乎都无法实现它。
我的函数被编写为TypeScript
模块,这就是我想公开我的函数的方式:
window.namespace.utils.messageBox
window.namespace.main.initMain
这是我的代码:
index.ts
import { Functions } from './src/Functions';
export default Functions;
// also tried window['namespace'] = Functions;
函数.ts
import { UtilFunctions } from './Utils/UtilFunctions';
import { MainFunctions } from './Main/InitMain/MainFunctions';
export module Functions {
export var main = MainFunctions;
export var utils = UtilFunctions;
}
实用函数.ts
import { MessageBox } from './MessageBox/MessageBox';
export module UtilFunctions {
export var messageBox = MessageBox
};
MainFunctions.ts
import { InitMain } from "./InitMain";
export module MainFunctions {
export var initMain = InitMain;
}
经过一番搜索和试验,我意识到我需要设置一个Terser Miny Option :
.terserrc:
{
"mangle" false
}
然后我正在使用--global 标志进行构建:
parcel build index.ts --global namespace
但是当我namespace
在我的 F12 控制台中检查时:
namespace
{…}
__esModule: true
<prototype>: Object { … }
如何将我的功能放到namespace
对象上?
我正在导出所有内容 - 事实上,如果我进行开发构建,它可以正常工作:"dev": "parcel index.ts"
.
我认为生产是把所有东西都封闭起来,对吗?这就是我的功能没有像我希望的那样公开的原因。