【发布时间】:2017-11-22 18:47:52
【问题描述】:
我编写了一个简单的 typescript 库,用作 npm 库。看起来是这样的:
index.ts
import * as peselManager from './pesel';
/**
* Returns information if PESEL number is valid.
*
* @param {string} pesel
* @returns {boolean}
*/
export const isValidPesel = (pesel: string): boolean => {
return peselManager.isValid(pesel);
};
一切都很好,但我也想将我的库用作 js 脚本。为此,我使用了 webpack,并配置了休闲配置:
var path = require('path');
var UglifyJSPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
entry: "./lib/index.ts",
output: {
filename: "peseljs.min.js",
path: path.resolve(__dirname, 'dist')
},
resolve: {
extensions: [".ts", ".js"]
},
module: {
loaders: [{ test: /\.ts$/, loader: "ts-loader" }]
},
plugins: [
new UglifyJSPlugin()
]
};
当我使用webpack 命令时,我得到了缩小 js 脚本。但是当我像这样将此脚本添加到示例页面时:
<html lang="en">
<head>
<meta charset="utf-8">
<title>PeselJS Example</title>
<meta name="description" content="PeselJS Example Page">
<meta name="author" content="jaroslawkrol">
<script type="text/javascript" src="peseljs.min.js"></script>
</head>
<body>
<span id="some-span">ABC</span>
<script>
var isValid = isValidPesel("22032101355");
if(isValid) {
console.log("valid");
} else {
console.log("invalid");
}
</script>
</body>
</html>
我收到关于 Uncaught ReferenceError: isValidPesel is not defined 的错误。 我的问题:有没有办法捆绑我的库来调用这样的函数?这是一个好习惯吗?也许,我做错了,所以我很高兴听到你的 cmets。
【问题讨论】:
标签: javascript typescript webpack