【发布时间】:2016-12-14 00:51:21
【问题描述】:
我刚刚开始学习使用 Webpack(以前我只是使用手动方式分别包含单个脚本)。我使用bootstrap-loader 加载引导程序。这是我的 webpack.config.js
var path = require("path")
var webpack = require('webpack')
var BundleTracker = require('webpack-bundle-tracker')
module.exports = {
context: __dirname,
entry: './assets/js/index', // entry point of our app. assets/js/index.js should require other js modules and dependencies it needs
output: {
path: path.resolve('./assets/bundles/'),
filename: "[name]-[hash].js",
},
plugins: [
new BundleTracker({filename: './webpack-stats.json'})
],
module: {
loaders: [
{ test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'}, // to transform JSX into JS
{ test: /\.css$/, loader: 'style-loader!css-loader'}, // to transform css
// images
{ test: /\.png$/, loader: 'url-loader?limit=100000'},
{ test: /\.jpg$/, loader: 'file-loader'},
// bootstrap image files
{ test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff'},
{ test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream'},
{ test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file'},
{ test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'}
],
},
resolve: {
modulesDirectories: ['node_modules', 'bower_components'],
extensions: ['', '.js', '.jsx'],
jquery: './vendor/jquery/jquery.js',
},
}
这是我的 entry.js
global.jQuery = global.$ = require('jquery');
require('bootstrap-loader');
这似乎有效。但是,我以前用过这个,它不起作用:
window.jQuery = window.$ = require('jquery');
我发现上面有很多人建议的行。但我只是在加载页面时遇到错误。只是一些例子:some SO question、webpack issue、another SO question。
后来我找到了this question和this question。因此,该页面实际上也适用于 bootstrap js 功能。
如果相关,我也会添加我的 package.json:
{
"author": "franklingu",
"dependencies": {
"babel": "^6.5.2",
"babel-core": "^6.13.2",
"babel-loader": "^6.2.4",
"bootstrap-loader": "^1.2.0-beta.1",
"bootstrap-sass": "^3.3.7",
"extract-text-webpack-plugin": "^1.0.1",
"jquery": "^3.1.0",
"node-sass": "^3.8.0",
"resolve-url-loader": "^1.6.0",
"sass-loader": "^4.0.0",
"webpack": "^1.13.1",
"webpack-bundle-tracker": "0.0.93"
},
"devDependencies": {
"babel-core": "^6.13.2",
"babel-loader": "^6.2.4",
"css-loader": "^0.23.1",
"file-loader": "^0.9.0",
"node-sass": "^3.8.0",
"resolve-url-loader": "^1.6.0",
"sass-loader": "^4.0.0",
"style-loader": "^0.13.1",
"url-loader": "^0.5.7",
"webpack": "^1.13.1"
}
}
我是 webpack 的新手,但我对 JS 并不陌生。我想知道为什么 window.$ 不起作用。
我想知道,对于 webpack,为什么有些人在插件中建议这样做:
new webpack.ProvidePlugin({
'window.jQuery': 'jquery',
'window.$': 'jquery',
})
有些人建议这样做(对我也不起作用):
resolve: {
alias: {
jquery: "jquery/src/jquery"
}
}
当时我玩过 node 一段时间,我记得 node 使用 request js 进行加载(虽然我不太清楚 common 与 require 与 amd 之间的区别)。但是为什么有人会提到常见的js呢?
我开发后端有一段时间了,刚开始做前端——很多问题都冒出来了。如果您向我提供一些阅读指南的链接就足够了,这可以消除我的疑虑/建立我对这些的基本理解。
【问题讨论】:
标签: javascript jquery node.js twitter-bootstrap webpack