使用webpack / uglifyJS

时间:2016-01-20 16:32:32

标签: typescript webpack bundling-and-minification uglifyjs

我的项目使用的是内部打字稿模块,它基本上由一个大模块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变量,但它是空的。

1 个答案:

答案 0 :(得分:0)

  

未捕获的ReferenceError:项目未定义

您确定JavaScript已加载吗?您的代码中确实存在拼写错误:

entry: "./builds/bndle.js"

引述你:

  

这被编译成一个bundle.js,当自动加载时

修复:

entry: "./builds/bundle.js"