我正在尝试将旧的Backbone项目从RequireJS迁移到Webpack。也许只是不完全了解webpack的工作原理,但这是代码。
main.js:
require(['application'], function(App) {
App.initialize()
})
application.js:
define(['router'], function(Router) {
return {
initialize: function() {
Router.initialize()
}
}
})
由于某种原因,当我运行webpack命令时,他在function(...){...}中的代码根本无法执行。我将console.log的内部和外部都定义和需要,外部的正在登录控制台,而内部的则不在。是否应该与Backbone和Webpack一起发生?这是我的webpack配置:
var path = require('path')
var webpack = require('webpack')
module.exports = {
entry: './main',
context: path.resolve(__dirname, 'webapp/javascripts/app'),
output: {
filename: 'bundle.js'
},
devServer: {
contentBase: path.join(__dirname, 'dist')
,
module: {
rules: [
{
test: /\.css$/i,
use: ['style-loader', 'css-loader']
},
{
test: /\.js$/,
exclude: /node_modules/,
use: ['babel-loader']
},
{
test: /\.html$/,
loaders: 'text-loader',
exclude: /node_modules/
},
{
test: /\.(png|woff|woff2|ico|eot|ttf|svg|gif|jpe?g)$/,
loader: 'url-loader?limit=100000'
},
{
test: /\.(mp3|ogg)$/,
loader: 'file-loader'
}
]
},
resolve: {
modules: [
path.resolve(__dirname, 'node_modules'),
path.resolve(__dirname, 'webapp/javascripts/app/')
],
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
_: 'underscore',
Backbone: 'backbone',
})
]
}
我自己通过用ES6 import export重写define([...],finction(...){...})来修复它]