Webpack 无法导入vuejs库
我正在制作一个小型vuejs库,只是为了学习如何制作一个。我们称之为swing,这就是文件的结构Webpack 无法导入vuejs库,webpack,ecmascript-6,vuejs2,vue-component,node-modules,Webpack,Ecmascript 6,Vuejs2,Vue Component,Node Modules,我正在制作一个小型vuejs库,只是为了学习如何制作一个。我们称之为swing,这就是文件的结构 conf/,dist/,test/文件为空 我已将此库推送到github并将其发布到npm。 我使用 npm install --save vuejs-swing 我可以看到它安装在package.json和node\u modules文件夹中,但当我安装时: import swing from 'vuejs-swing' 我得到这个错误: ERROR Failed to compile
conf/
,dist/
,test/
文件为空
我已将此库推送到github并将其发布到npm。
我使用
npm install --save vuejs-swing
我可以看到它安装在package.json
和node\u modules
文件夹中,但当我安装时:
import swing from 'vuejs-swing'
我得到这个错误:
ERROR Failed to compile with 1 errors 11:42:41 AM
This dependency was not found:
* vuejs-swing in ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0&bustCache!./src/c
omponents/HelloWorld.vue
To install it, you can run: npm install --save vuejs-swing
它显然是内置的,因此它必须是一个配置问题
这是我的webpack.config.js
var path = require('path')
var webpack = require('webpack')
module.exports = {
module: {
rules: [
// use babel-loader for js files
{ test: /\.js$/, use: 'babel-loader' },
// use vue-loader for .vue files
{ test: /\.vue$/, use: 'vue-loader' }
]
},
// default for pretty much every project
context: __dirname,
// specify your entry/main file
entry: {
app: './src/swing.js',
},
output: {
// specify your output directory...
path: path.resolve(__dirname, 'output'),
// and filename
filename: 'index.min.js'
},
resolve: {
// this is optional, but it lets you import .vue files without the .vue extension.
extensions: ['.js', '.json', '.vue']
}
}
if (process.env.NODE_ENV === 'production') {
module.exports.devtool = '#source-map'
// http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
compress: {
warnings: false
}
}),
new webpack.LoaderOptionsPlugin({
minimize: true
})
])
}
编辑:
我将把奖金奖励给能够提供工具、在npm中发布软件包所需的配置以及能够导入/使用软件包的人。遵循以下步骤:
- 确保您的
文件夹未被git忽略(不应位于输出
文件中).gitignore
- 为生产构建包(运行网页包)
- 在
中,将package.json
文件指向main
,将非指向/output/index.min.js
/src/swing.js
{
“名称”:“vuejs swing”,
“版本”:“0.1.2”,
“main”:“/output/index.min.js”,
// ...
}
不要让包的用户为您构建源代码(运行Webpack),您需要将他们指向预打包的javascript文件
作为补充说明,到目前为止,包
vuejs-swing
尚未在npm上公开发布。我不知道您是否更改了包名或正在使用私有存储库。这并没有解决问题。我只更正了package.json,其他的都还可以。(输出不会被忽略,我的库是另一个名称not swing)因此,唯一要添加的是“main”:“/output/index.min.js”,
将生成输出文件夹及其js文件。我提交了修改,升级了版本,并将其重新发布到npm。即使从“vuejs swing”导入swing后错误消失了,但未定义swing
。我把它添加到组件:{swing}
但是什么都没有。如果有一个到Github的链接会很好。你能给我们看看swing.vue的代码吗?我想知道您是否没有导出组件correctly@TimHutchison我只是导出一个简单的东西,比如export.module='swing'