我试图向npm发布一个包含两个或多个Vue组件的项目,以便我可以导入、注册和使用这两个组件,如下所示:
import Component1 from 'npm-package'
import Component2 from 'npm-package'这是webpack的档案:
const webpack = require('webpack');
const merge = require('webpack-merge');
const path = require('path');
var config = {
output: {
path: path.resolve(__dirname + '/dist/'),
},
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel',
include: __dirname,
exclude: /node_modules/
},
{
test: /\.vue$/,
loader: 'vue'
},
{
test: /\.css$/,
loader: 'style!less!css'
}
]
},
externals: {
moment: 'moment'
},
plugins: [
new webpack.optimize.UglifyJsPlugin( {
minimize : true,
sourceMap : false,
mangle: true,
compress: {
warnings: false
}
} )
]
};
module.exports = [
merge(config, {
entry: path.resolve(__dirname + '/src/plugin.js'),
output: {
filename: 'vue-project.min.js',
libraryTarget: 'window',
library: 'VueProject',
}
}),
merge(config, {
entry: path.resolve(__dirname + '/src/index.js'),
output: {
filename: 'vue-project.js',
libraryTarget: 'umd',
library: 'vue-project',
umdNamedDefine: true
},
resolve: {
extensions: ['', '.js', '.vue'],
alias: {
'src': path.resolve(__dirname, '../src'),
'components': path.resolve(__dirname, '../src/components')
}
}
})
];这是我使用的index.js文件作为构建过程的入口点
import Component1 from './components/folder1/Component1.vue'
import Component1 from './components/folder2/Component2.vue'
export default {
components: {
Component1,
Component2
}
}使用npm的构建过程运行良好,我可以将项目发布到npm,并使用npm安装安装它。导入和使用它可以正常工作,但是当我运行我的项目时,我会得到以下错误:
未能装入组件:未定义的模板或呈现函数。其他所有关于这个错误的帖子都没有解决我的问题,因为他们没有一个试图导出多个组件。
当im在两个不同的项目中发布它们时,这两个组件完全按照预期工作。
我在这里错过了什么?提前感谢!
发布于 2017-10-18 13:31:01
不需要使用components属性导出,只需执行以下操作:
export {
Component1,
Component2
}然后你就会:
import {Component1} from 'npm-package';
import {Component2} from 'npm-package';或
import {Component1, Component2} from 'npm-package';请参阅:https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export
https://stackoverflow.com/questions/46811157
复制相似问题