使用webpack和two.js的问题

我正在使用webpack和two.js编写一个Web应用程序。 为了完整性,这些是我的依赖:

"devDependencies": { "jasmine-core": "^2.8.0", "karma": "^1.7.0", "karma-chrome-launcher": "^2.2.0", "karma-jasmine": "^1.1.0", "karma-webpack": "^2.0.4", "webpack": "^3.5.5" }, "dependencies": { "two.js": "^0.6.0" } 

我有以下webpack.config.js

 const path = require('path'); module.exports = { entry: './myentry.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'out') } }; 

入口文件myentry.js只是导入two.js

 import * as two from "two.js"; 

捆绑成功…

two.js是我的npm依赖的一部分,所以它可以在node_modules文件夹中的本地节点模块中node_modules 。 当我继续创build捆绑包时:

 webpack --config webpack.config.js 

成功 ,我得到以下输出:

 Hash: 5e762def59fa65ff8487 Version: webpack 3.5.5 Time: 468ms Asset Size Chunks Chunk Names bundle.js 258 kB 0 [emitted] [big] main [0] ./myentry.js 271 bytes {0} [built] + 1 hidden module 

生成的包在这里可用。

但是…运行失败:

所以我使用我的HTML页面中的包:

 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>My stuff</title> <script type="module" src="./out/bundle.js"></script> </head> <body></body> </html> 

当我在Chrome中打开页面时(我使用http-server来避免CORS相关的问题),我在F12工具中看到这些错误

 bundle.js:1674 Uncaught TypeError: Cannot read property 'Backbone' of undefined at bundle.js:1674 at Object.<anonymous> (bundle.js:1831) at __webpack_require__ (bundle.js:20) at Object.root (bundle.js:72) at __webpack_require__ (bundle.js:20) at Object.defineProperty.value (bundle.js:63) at bundle.js:66 

发生什么事?

看起来问题是我在HTML中引用包的方式:

 <script type="module" src="./out/bundle.js"></script> 

这是不正确的,因为生成的捆绑不是一个ES6模块:(

 <script type="application/javascript" src="./out/bundle.js"></script> 

这使错误消失。 这实际上是开放给其他错误,但他们是完全无关的骨干