我的项目使用的是内部打字稿模块,它基本上由一个大模块project
和许多子模块project.sub.etc
组成。
使用tsc --out
时,会将其编译为bundle.js
,当自动加载时,project
可用作全局变量。
现在我想缩小我的捆绑。对于项目的其余部分,我依赖webpack,所以我尝试设置webpack配置来缩小生成的bundle。为此,我使用了webpack附带的uglyfiJS插件。但是,当我加载生成的bundle.min.js
时,全局模块在全局范围内不可用。
Uncaught ReferenceError: project is not defined
我该怎么解决这个问题?
var webpack = require("webpack");
module.exports = {
entry: "./builds/bndle.js",
output: {
path: "./builds",
filename: "bundle.min.js"
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
mangle:false
})
]
};
我已经尝试过关闭修剪,因为我认为这会改变模块的名称,但它没有帮助。
我也尝试添加
output: {
libraryTarget: "var",
library: "Foo"
}
到webpack配置。这给了我一个globl project
变量,但它是空的。
答案 0 :(得分:0)
未捕获的ReferenceError:项目未定义
您确定JavaScript已加载吗?您的代码中确实存在拼写错误:
entry: "./builds/bndle.js"
引述你:
这被编译成一个bundle.js,当自动加载时
修复:
entry: "./builds/bundle.js"