Javascript 通过网页包从typescript导出对象并在JS中使用
我想做的是将我用Typescript编写的一个库与Webpack2捆绑在一起,并能够使用这个库,即使使用vanilla JS。建筑运行良好,没有错误,但当使用导出的对象时,它看起来像一个空对象Javascript 通过网页包从typescript导出对象并在JS中使用,javascript,typescript,webpack,Javascript,Typescript,Webpack,我想做的是将我用Typescript编写的一个库与Webpack2捆绑在一起,并能够使用这个库,即使使用vanilla JS。建筑运行良好,没有错误,但当使用导出的对象时,它看起来像一个空对象{} 所以我试着做以下几点: 将库绑定到Bundle.js文件中 创建一个my-js-script.js文件,将.ts文件导出的对象记录到控制台 创建index.html文件 导入bundle.js和myjsscript.js文件 提供index.html文件并在控制台中查看该对象 打字脚本文件 我认为
{}
所以我试着做以下几点:
- 将库绑定到Bundle.js文件中
- 创建一个my-js-script.js文件,将.ts文件导出的对象记录到控制台
- 创建index.html文件
- 导入
和bundle.js
文件myjsscript.js
- 提供index.html文件并在控制台中查看该对象
myModule
常量了。但不幸的是,这还不够
index.html
我错过了什么?或者根本就没有机会这么做?网页包的配置非常简单
var path = require("path");
module.exports = {
entry: "./src/web-onion.ts",
output: {
path: path.resolve(__dirname, 'dist/'),
filename: "bundle.js"
},
resolve: {
extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
},
module: {
loaders: [
{ test: /\.tsx?$/, loader: "ts-loader" }
]
}
}
你不能这样做<代码>我的模块不会作为全局文件导出。如果要全局导出某些内容,请在TypeScript文件中使用:
window.something = myModule
注意:您必须扩展窗口界面或使用
(任何窗口)
您不能这样做<代码>我的模块不会作为全局文件导出。如果要全局导出某些内容,请在TypeScript文件中使用:
window.something = myModule
注意:您必须扩展窗口界面或使用
(任何窗口)
我已经尝试了您的解决方案,它部分有效。我可以在控制台中成功地记录对象,但是所有的属性和方法都封装在原型中。有没有可能通过myModule.met()而不是myModule.proto\uuuuuuu.constructor.met()访问它们?这就是JavaScript中对象的工作方式。您的意思是访问ClassA吗?您的意思是不能执行myModule.anyMethod()?因为这不是一种正常的行为。您是否尝试过调用myModule.met()代码>?它应该可以工作。使用TypeScript而不是JavaScript。我已经尝试过你的解决方案,它可以部分工作。我可以在控制台中成功地记录对象,但是所有的属性和方法都封装在原型中。有没有可能通过myModule.met()而不是myModule.proto\uuuuuuu.constructor.met()访问它们?这就是JavaScript中对象的工作方式。您的意思是访问ClassA吗?您的意思是不能执行myModule.anyMethod()?因为这不是一种正常的行为。您是否尝试过调用myModule.met()代码>?它应该可以工作。使用TypeScript而不是JavaScript。
var path = require("path");
module.exports = {
entry: "./src/web-onion.ts",
output: {
path: path.resolve(__dirname, 'dist/'),
filename: "bundle.js"
},
resolve: {
extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
},
module: {
loaders: [
{ test: /\.tsx?$/, loader: "ts-loader" }
]
}
}
window.something = myModule