如何从webpacked JS中排除一个Typescript设置

时间:2017-10-19 13:03:48

标签: typescript webpack webpack-2

感谢您的指导,对于深入的打字稿相对较新。我当然是服务员方面的人,但我喜欢Typescript提供的舒适感觉!感觉离家很近。

作为测试用例,我正在尝试将脚本“删节”到已包含jQuery的主项目中。此测试用例在其代码中导入jQuery。

import $ = require("jquery");

class TestCase {
    constructor(localeData) {
        $('body').css('background', 'blue');
    }
}

将(使用Typescript)编译为此预期格式

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const $ = require("jquery");
class TestCase {
    constructor(localeData) {
        $('body').css('background', 'blue');
    }
}

除此之外,我已经执行了这些命令:

npm install -g webpack

npm install ts-loader --save

并加入此webpack.config.js

module.exports = {
    entry: './testcase.ts',
    output: {
        filename: 'testcase.js'
    },
    resolve: {
        extensions: ['.webpack.js', '.web.js', '.ts', '.js']
    },
    module: {
        loaders: [
            {test: /\.ts$/, loader: 'ts-loader'}
        ]
    }
};

此后我运行'webpack'并在我的小测试脚本之前获得所有jQuery。需要注意的是,我想要插入它的项目已经包含了jQuery。

我该如何处理这个案子;我想我必须告诉webpack以某种方式排除这个导入?

谢谢!

1 个答案:

答案 0 :(得分:0)

好。似乎这么简单?

module.exports = {
    entry: './testcase.ts',
    output: {
        filename: 'testcase.js'
    },
    resolve: {
        extensions: ['.webpack.js', '.web.js', '.ts', '.js']
    },
    externals: {
        "jquery": "jQuery",
    },
    module: {
        loaders: [
            {test: /\.ts$/, loader: 'ts-loader'}
        ]
    }
};