从requireJS迁移到webpack

问题描述 投票:0回答:1

我正在尝试将旧的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',
    })
  ]
}
webpack backbone.js requirejs
1个回答
0
投票

我自己通过用ES6 import export重写define([...],finction(...){...})来修复它]

© www.soinside.com 2019 - 2024. All rights reserved.