Skip to content

Sqlite3 error with node-pre-gyp #4

Description

@jsgv

Hi,

I am attempting to use the this to add sqlite3 support for my Electron app.
When I try to include the package, I get warnings followed by errors.
I am using Webpack as well.
I need to use sqlite3 since Gun with file.js does not trigger .on( updates.

Thanks.

// store.js
var Gun = require('gun')
require('sqlite.gun')

var gun = Gun({
    file: false,
    sqlite: {
        file: "gun.sqlite3"
    }
})
//...
// webpack.base.conf.js
var path = require('path')
var webpack = require('webpack')
var config = require('../config')
var cssLoaders = require('./css-loaders')
var projectRoot = path.resolve(__dirname, '../')

module.exports = {

    output: {
        path: config.build.outputRoot,
        filename: '[name].js'
    },
    
    target: 'node',
    node: {
        __filename: false,
        __dirname: false
    },
    resolve: {
        extensions: ['', '.js', '.vue'],
        fallback: [path.join(__dirname, '../node_modules')],
        alias: {
            app: path.resolve(__dirname, '../app'),
            'vue': 'vue/dist/vue.common.js'
        }
    },
    resolveLoader: {        
        fallback: [
            path.join(__dirname, '../node_modules')
        ]
    },
    module: {
        preLoaders: [
            {
                test: /\.vue$/,
                loader: 'eslint',
                include: projectRoot,
                exclude: /node_modules/
            },
            {
                test: /\.js$/,
                loader: 'eslint',
                include: projectRoot,
                exclude: /vue-devtools|node_modules/
            }
        ],
        loaders: [
            {
                test: /\.vue$/,
                loader: 'vue-loader',
                options: {
                    // postcss: [
                    //   require('autoprefixer')({
                    //     browsers: ['last 3 versions']
                    //   })
                    // ],
                    loaders: {
                        scss: 'style-loader!css-loader!sass-loader',
                        less: 'style-loader!css-loader!less-loader'
                    }
                }
            },            
            {
                test: /\.js$/,
                loader: 'babel',
                include: projectRoot,
                exclude: /vue-devtools|node_modules/
            },
            {
                test: /\.json$/,
                loader: 'json'
            },
            {
                test: /\.html$/,
                loader: 'vue-html'
            },
            // {
            //   test: /\.scss$/,
            //   loader: 'sass-loader'
            // },
            // {
            //   test: /\.(png|jpe?g|gif|svg|woff2?|eot|ttf|otf)(\?.*)?$/,
            //   loader: 'url',
            //   query: {
            //     limit: 10000,
            //     name: path.join(config.build.assetsSubDirectory, '[name].[ext]').replace('\\', '/')
            //   }
            // }

            {
                test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
                loader: 'url',
                query: {
                    limit: 10000,
                    name: path.join(config.build.assetsSubDirectory, '[name].[ext]')
                }
            },
            {
                test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
                loader: 'url',
                query: {
                    limit: 10000,
                    name: path.join(config.build.assetsSubDirectory, 'fonts/[name].[ext]')
                }
            }
        ]
    },
    plugins: [
        new webpack.ExternalsPlugin('commonjs2', [
            'desktop-capturer',
            'electron',
            'ipc',
            'ipc-renderer',
            'native-image',
            'remote',
            'web-frame',
            'clipboard',
            'crash-reporter',
            'screen',
            'shell'
        ])
    ],
    vue: {
        // loaders: cssLoaders()
        loaders: {
            scss: 'style-loader!css-loader!sass-loader',
            less: 'style-loader!css-loader!less-loader'
        }
    },
    eslint: {
        formatter: require('eslint-friendly-formatter')
    },
    externals:  {}
}

Warnings:

WARNING in ./~/sqlite3/lib/sqlite3.js
Critical dependencies:
4:14-35 the request of a dependency is an expression
 @ ./~/sqlite3/lib/sqlite3.js 4:14-35

WARNING in ./~/sqlite3/lib/binding/electron-v1.6-darwin-x64/node_sqlite3.node
Module parse failed: /Volumes/MacintoshHD/myapp/node_modules/sqlite3/lib/binding/electron-v1.6-darwin-x64/node_sqlite3.node Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected character '�' (1:0)
    at Parser.pp$4.raise (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2221:15)
    at Parser.pp$7.getTokenFromCode (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2756:10)
    at Parser.pp$7.readToken (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2477:17)
    at Parser.pp$7.nextToken (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2468:15)
    at Parser.parse (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:515:10)
    at Object.parse (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:3098:39)
    at Parser.parse (/Volumes/MacintoshHD/myapp/node_modules/webpack/lib/Parser.js:902:15)
    at DependenciesBlock.<anonymous> (/Volumes/MacintoshHD/myapp/node_modules/webpack/lib/NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (/Volumes/MacintoshHD/myapp/node_modules/webpack-core/lib/NormalModuleMixin.js:310:10)
    at nextLoader (/Volumes/MacintoshHD/myapp/node_modules/webpack-core/lib/NormalModuleMixin.js:275:25)
    at /Volumes/MacintoshHD/myapp/node_modules/webpack-core/lib/NormalModuleMixin.js:259:5
    at Storage.finished (/Volumes/MacintoshHD/myapp/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:38:16)
    at /Volumes/MacintoshHD/myapp/node_modules/graceful-fs/graceful-fs.js:78:16
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)
 @ ./~/sqlite3/lib ^\.\/.*$

WARNING in ./~/sqlite3/lib/binding/node-v48-darwin-x64/node_sqlite3.node
Module parse failed: /Volumes/MacintoshHD/myapp/node_modules/sqlite3/lib/binding/node-v48-darwin-x64/node_sqlite3.node Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected character '�' (1:0)
    at Parser.pp$4.raise (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2221:15)
    at Parser.pp$7.getTokenFromCode (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2756:10)
    at Parser.pp$7.readToken (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.

dev:server  js:2477:17)

//
// more warnings...
//

Error:

ERROR in ./~/sqlite3/~/node-pre-gyp/lib/node-pre-gyp.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../package in /Volumes/MacintoshHD/myapp/node_modules/sqlite3/node_modules/node-pre-gyp/lib
 @ ./~/sqlite3/~/node-pre-gyp/lib/node-pre-gyp.js 60:16-37

ERROR in ./~/sqlite3/~/node-pre-gyp/~/rc/index.js
Module parse failed: /Volumes/MacintoshHD/myapp/node_modules/sqlite3/node_modules/node-pre-gyp/node_modules/rc/index.js Unexpected character '#' (1:0)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected character '#' (1:0)
    at Parser.pp$4.raise (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2221:15)
    at Parser.pp$7.getTokenFromCode (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2756:10)
    at Parser.pp$7.readToken (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2477:17)
    at Parser.pp$7.nextToken (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:2468:15)
    at Parser.parse (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:515:10)
    at Object.parse (/Volumes/MacintoshHD/myapp/node_modules/webpack/node_modules/acorn/dist/acorn.js:3098:39)
    at Parser.parse (/Volumes/MacintoshHD/myapp/node_modules/webpack/lib/Parser.js:902:15)
    at DependenciesBlock.<anonymous> (/Volumes/MacintoshHD/myapp/node_modules/webpack/lib/NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (/Volumes/MacintoshHD/myapp/node_modules/webpack-core/lib/NormalModuleMixin.js:310:10)
    at nextLoader (/Volumes/MacintoshHD/myapp/node_modules/webpack-core/lib/NormalModuleMixin.js:275:25)
    at /Volumes/MacintoshHD/myapp/node_modules/webpack-core/lib/NormalModuleMixin.js:259:5
    at Storage.finished (/Volumes/MacintoshHD/myapp/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:38:16)
    at /Volumes/MacintoshHD/myapp/node_modules/graceful-fs/graceful-fs.js:78:16
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)
 @ ./~/sqlite3/~/node-pre-gyp/lib/info.js 11:13-26

ERROR in ./~/node-gyp/lib/node-gyp.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../package in /Volumes/MacintoshHD/myapp/node_modules/node-gyp/lib
 @ ./~/node-gyp/lib/node-gyp.js 67:16-37

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions