无法导入vuejs库

时间:2017-11-16 11:10:16

标签: webpack ecmascript-6 vuejs2 vue-component node-modules

我正在制作一个小小的vuejs库,只是为了学习如何制作一个。我们称它为swing,这就是文件的结构。

enter image description here

conf/dist/test/文件为空

我已将此库推送到github并将其发布到npm。 我使用

将其安装到我的应用程序中
npm install --save vuejs-swing

我可以看到它安装在package.jsonnode_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中发布包所需的配置并且能够使用它。

1 个答案:

答案 0 :(得分:1)

请按照以下步骤操作:

  • 确保git不会忽略您的output文件夹(不应该在.gitignore文件中)
  • 构建您的包以进行生产(运行Webpack)
  • package.json点,main文件为./output/index.min.js./src/swing.js
{
  "name": "vuejs-swing",
  "version": "0.1.2",
  "main": "./output/index.min.js",
  // ...
}

除了您的软件包的用户之外,不要为您构建源代码(运行Webpack),您需要将它们指向预先打包的javascript文件。

作为旁注,目前在npm上发布的包vuejs-swing 。我不知道您是否更改了包名称或在私有存储库上工作。