![](/img/trans.png)
[英]How to publish dual npm package (CommonJS + modules) so that submodules are uniformly imported
[英]How to build an npm package so it is able to be imported/required
我已经构建了一个 npm 包并将其发布到 NPM 上。
当我npm install <my-package>
然后import MyPackage from "@Acme/MyPackage";
进入反应我收到以下错误。
找不到模块:无法解析@Acme/MyPackage
这是因为我如何设置我的 sdk 包。 你可以在下面找到我用来构建它的 webpack 配置。
顺便说一句,如果我直接在标题中导入脚本标签,这会起作用,但是如何在没有在标题中专门定义脚本标签的情况下像这样导入它?
webpack.config.js
const path = require('path');
// const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-package.min.js',
libraryTarget: 'umd',
library: 'MyPackage'
},
devtool: 'source-map',
resolve: {
extensions: ['.js'],
},
module: {
rules: [
{
test: /\.(js)$/,
use: 'babel-loader'
}
]
},
node: {
console: false,
global: true,
process: true,
__filename: 'mock',
__dirname: 'mock',
Buffer: true,
setImmediate: true,
fs: 'empty',
net: 'empty',
tls: 'empty'
// See "Other node core libraries" for additional options.
},
plugins: [
// new UglifyJSPlugin({ sourceMap: true }),
new CopyWebpackPlugin([
{ from: 'test/index.html', to: '' }
]),
],
};
似乎import
不知道从哪里导入包,但因为它已经在你的node_modules
文件夹中,我猜你要么没有index.js
文件,要么你没有定义你的主条目文件为您打包。
每个 NPM 包都会寻找一个index.js
文件,但如果你想重命名它,你实际上可以在你的package.json
定义它
{
"name": "yourpackage",
"version": "x.x.x",
"main": "another-name.min.js",
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.