【问题标题】:How to load jQuery with this webpack.config.js file?如何使用这个 webpack.config.js 文件加载 jQuery?
【发布时间】:2016-03-16 05:23:53
【问题描述】:

所以我构建了以下 webpack 配置文件 (which I got from this repo):

现在当我运行 gulp servenode index.js 时,我收到以下错误:

Uncaught ReferenceError: jQuery is not definedtransition.js?9b13:59

如何修改 webpack 以便正确配置 jQuery 以使用 Angular 和引导程序?甚至引导 css 都没有出现,我也对此感到困惑,因为这不涉及 jQuery。

var path              = require('path');
var webpack           = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');

var appRoot           = path.join(__dirname, '/src');
var bowerRoot         = path.join(__dirname, '/bower_components');
var bootstrapPath     = path.join(__dirname, '/bower_components/bootstrap/less/bootstrap');

module.exports = {
    cache: true,
    debug: true,
    singleRun: true,

    // The entry point
    entry: [
        path.join(appRoot, '/app/app.js')
    ],

    output: {
        path: path.join(__dirname, './static'),
        publicPath: './',
        filename: '[hash].bundle.js',
        chunkFilename: '[chunkhash].js'
    },


    module: {
        loaders: [
            {
                test: /\.less$/, loader: 'style!css!less'
            },
            {
                // require raw html for partials
                test: /\.html$/, loader: 'ng-cache'
            },
            {
                test: /\.json$/, loader: 'json'
            },
            {
              test: /\.css$/, loader: 'style-loader!css-loader'
            },
            {
              test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file"
            },
            {
              test: /\.(woff|woff2)$/, loader:"url?prefix=font/&limit=5000"
            },
            {
              test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream"
            },
            {
              test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml"
            }
        ],

        // don't parse some dependencies to speed up build.
        noParse: [
            path.join(bowerRoot, '/angular-ui-router'),
            path.join(bowerRoot, '/angular-mocks'),
            path.join(bowerRoot, '/angular'),
            path.join(bowerRoot, '/less')
        ],
    },

    resolve: {
        alias: {
            bower: bowerRoot,
            'bootstrap.less': bootstrapPath 

        },

        extensions: [
            '',
            '.js',
            '.less',
            '.css'
        ],

        root: [appRoot],
        moduleDirectories: [bootstrapPath]
    },


    plugins: [
        // bower.json resolving
        new webpack.ResolverPlugin([
            new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin('bower.json', ['main'])
        ], ['normal', 'loader']),

        // disable dynamic requires
        new webpack.ContextReplacementPlugin(/.*$/, /a^/),

        new webpack.ProvidePlugin({
            'angular': 'exports?window.angular!bower/angular',
        }),

        new HtmlWebpackPlugin({
            template: __dirname + '/src/index.html'
        }),

    ],

};

【问题讨论】:

    标签: jquery twitter-bootstrap webpack


    【解决方案1】:

    您已经使用ProvidePlugin。所以,你只需要添加 JQuery:

    new webpack.ProvidePlugin({
        'angular': 'exports?window.angular!bower/angular',
        '$': "jquery",
        'jQuery': "jquery"
    })
    

    【讨论】:

    • 运行gulp build时我得到Error: Cannot resolve module 'jquery' in ....app/bower_components/bootstrap/js
    • bootstrap 在他们的包中没有 jquery。你需要安装jquery:bower install jquery --save
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多