webpack无法解析bootstrap-loader的bootstrap模块

时间:2016-08-26 03:19:04

标签: javascript twitter-bootstrap webpack

尝试为webpack实现bootstrap-loader,但我一直遇到同样的问题。尝试用github repo开发它,但是没有他们说它有效吗?他们还建议降级为bootstrap alpha 2,但这并没有解决问题。

repo for reference

错误

#nav a

调试日志

ERROR in ./~/bootstrap-loader/lib/bootstrap.loader.js?configFilePath=/home/p3pt/dev/java/projects/sba2-wip/frontend/config/.bootstraprc!./~/bootstrap-loader/no-op.js
Module build failed: Error: 
Could not find bootstrap version: '4'. Did you install it?
The package is 'bootstrap' for bootstrap v4 and 'bootstrap-sass' for v3.

    at Object.module.exports.pitch (/home/p3pt/dev/java/projects/sba2-wip/frontend/node_modules/bootstrap-loader/lib/bootstrap.loader.js:114:11)

webpack config

[bootstrap-loader]:  bootstrap-loader is using config file at /home/p3pt/dev/java/projects/sba2-wip/frontend/config/.bootstraprc 

[bootstrap-loader]:  Hey, we're in DEBUG mode because you have 
      your config log level set to 'debug'. 

[bootstrap-loader]:  Query from webpack config: ?configFilePath=/home/p3pt/dev/java/projects/sba2-wip/frontend/config/.bootstraprc 

[bootstrap-loader]:  Using Bootstrap module: bootstrap 

[bootstrap-loader]:  resolveModule error is  [Error: Cannot find module 'bootstrap' from '/home/p3pt/dev/java/projects/sba2-wip/frontend/node_modules/bootstrap-loader/lib/utils'] 

[bootstrap-loader]:  Bootstrap module location (abs): false 

的package.json

const webpackMerge = require('webpack-merge');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const DefinePlugin = require('webpack/lib/DefinePlugin');
const commonConfig = require('./webpack.common.js');
const helpers = require('./helpers');

const ENV = process.env.ENV = process.env.NODE_ENV = 'development';
const HMR = helpers.hasProcessFlag('hot');
const METADATA = webpackMerge(commonConfig.metadata, {
    host: 'localhost',
    port: 3000,
    ENV: ENV,
    HMR: HMR
});

const bootstrapDevEntryPoint = 'bootstrap-loader/lib/bootstrap.loader?' +
          `configFilePath=${__dirname}/.bootstraprc` +
          '!bootstrap-loader/no-op.js';

module.exports = webpackMerge(commonConfig, {
    metadata: METADATA,
    debug: true,
    devtool: 'cheap-module-eval-source-map',

    entry: {
        bootstrapDevEntryPoint
    },

    output: {
        path: helpers.root('dist'),
        filename: '[name].js',
        chunkFilename: '[id].chunk.js',
        sourceMapFilename: '[name].map',
        library: 'ac_[name]',
        libraryTarget: 'var',
    },

    plugins: [
        new DefinePlugin({
            'ENV': JSON.stringify(METADATA.ENV),
            'HMR': METADATA.HMR,
            'process.env': {
                'ENV': JSON.stringify(METADATA.ENV),
                'NODE_ENV': JSON.stringify(METADATA.ENV),
                'HMR': METADATA.HMR
            }
        }),
    ],

    devServer: {
        port: METADATA.port,
        host: METADATA.host,
        historyApiFallback: true,
        watchOptions: {
            aggregateTimeout: 300,
            poll: 1000
        },
        outputPath: helpers.root('dist')
    },

    node: {
        global: 'window',
        crypto: 'empty',
        process: true,
        module: false,
        clearImmediate: false,
        setImmediate: false
    }
});

1 个答案:

答案 0 :(得分:1)

问题是bootstrap alpha 3被破坏了,降级到alpha 2的建议确实有效。我误解了npm install会选择^符号并升级包。

此修复程序围绕package.json

更改以下内容

更改

"bootstrap": "^4.0.0-alpha.2"

"bootstrap": "4.0.0-alpha.2"