ฉันต้องทำสิ่งที่ชอบ:
if (condition) {
import something from 'something';
}
// ...
if (something) {
something.doStuff();
}
รหัสข้างต้นไม่ได้รวบรวม; SyntaxError: ... 'import' and 'export' may only appear at the top level
มันจะพ่น
ฉันพยายามใช้System.import
ตามที่แสดงที่นี่แต่ไม่รู้ว่าSystem
มาจากไหน เป็นข้อเสนอ ES6 ที่ไม่ได้รับการยอมรับหรือไม่? เชื่อมโยงไปยัง "การเขียนโปรแกรม API" จากบทความที่ทิ้งฉันไปหน้าเอกสารเลิก
package.json
; ของฉันgulpfile
จากนั้นตรวจสอบว่าการพึ่งพานั้นมีอยู่ก่อนที่จะดำเนินการบางขั้นตอนการสร้าง
webpack
และbabel
เพื่อ transpile es6 เป็น es5 โครงการชอบwebpack-rewire
และที่คล้ายกันไม่ได้ความช่วยเหลือที่นี่ - github.com/jhnns/rewire-webpack/issues/12 วิธีหนึ่งในการตั้งค่าการทดสอบเป็นสองเท่าหรือเพื่อลบการอ้างอิงที่มีปัญหาอาจเป็นการนำเข้าแบบมีเงื่อนไข
webpack
ใช้ในการแปลงสไตล์ชีทเป็นโมดูลที่ใส่สไตล์ที่เกี่ยวข้องลงใน DOM เมื่อนำเข้า) แต่โมดูลยังต้องทำงานนอกเบราว์เซอร์ (เช่นสำหรับการทดสอบหน่วย)