鉴于以下代码,我使用以下代码启动了bootstrap.js
文件:
import jQuery from 'jquery';
// jQuery
window.$ = window.jQuery = jQuery;
// Twitter bootstrap
import 'bootstrap-sass/assets/javascripts/bootstrap';
// Initialize theme
import './theme/bootstrap';
当我编译它(使用webpack)并在浏览器中运行时,我从bootstrap得到了以下抱怨:'我需要jQuery才能工作......'
我没有(并且仍然没有)理解为什么没有导入jQuery,我将它设置为bootstrap上面的全局窗口对象1规则。
但是当我更改我的代码并删除所有导入时:
// jQuery
window.$ = window.jQuery = require('jquery');
// Twitter bootstrap
require('bootstrap-sass/assets/javascripts/bootstrap');
// Initialize theme
require('./theme/bootstrap');
这段代码运行得非常好,一切都按预期工作,但我一直认为导入和需求基本相同,导入只是转换为需要调用。显然情况并非如此,有人可以向我解释这里到底发生了什么,以及为什么需要在导入时不起作用?
答案 0 :(得分:0)
import
语句,这意味着相对于文件本身中的代码的import
语句的排序将不起作用。另一方面,require
调用只是函数调用,因此排序有效。
在第一个示例中,所有导入都将在window.$ = window.jQuery = jQuery;
行运行之前执行。